StreamingPro 可以暴露出原生API給大家使用
我們知道StreamingPro 是一個完全SQL/Script化的,基於Spark平台的一套生產力工具。但是不可避免的,我們可能希望直接操作SqlContext或者使用原生的DataFrame API。 這裏我們通過script 讓大家支持這個功能:
{
"name": "batch.script.df",
"params": [
{
"script": "context.sql(\"select a as t from test\").registerTempTable(\"finalOutputTable\")",
"source": "-"
}
]
}
在這個模塊裏,你可以訪問任何一張已經注冊的表。並且經過處理後注冊一張新的表。給了大家無線的靈活性。如果source 設置為file,script 填寫的是文件路徑的話,那麼就不用在json文件裏寫腳本了。
這裏給大家一個完整的例子:
{
"batch-console": {
"desc": "測試",
"strategy": "spark",
"algorithm": [],
"ref": [],
"compositor": [
{
"name": "batch.sources",
"params": [
{
"path": "file:///tmp/hdfsfile/abc.txt",
"format": "json",
"outputTable": "test"
}
]
},
{
"name": "batch.script.df",
"params": [
{
"script": "context.sql(\"select a as t from test\").registerTempTable(\"finalOutputTable\")",
"source": "-"
}
]
},
{
"name": "batch.outputs",
"params": [
{
"name":"jack",
"format": "console",
"path": "-",
"inputTableName": "finalOutputTable",
"mode":"Overwrite"
}
]
}
],
"configParams": {
}
}
}
另外,對於輸出,我們也可以控製文件數目:
{
"name": "batch.outputs",
"params": [
{
"name": "jack",
"format": "json",
"path": "file:///tmp/batch-console",
"outputFileNum": "3",
"inputTableName": "finalOutputTable",
"mode": "Overwrite"
}
]
}
其中 outputFileNum 就是你最後的輸出文件數。你也可以通過batch.script.df 模塊控製輸出的文件數。無非就是df.repartion(3).registerTable("finalOutputTable") 即可達成。下載地址:StreamingPro
最後更新:2017-04-01 17:13:52