我們知道StreamingPro 是一個完全SQL/Script化的梗脾,基于Spark平臺的一套生產(chǎn)力工具。但是不可避免的查蓉,我們可能希望直接操作SqlContext或者使用原生的DataFrame API丰介。 這里我們通過script 讓大家支持這個功能:
{
"name": "batch.script.df",
"params": [
{
"script": "context.sql(\"select a as t from test\").registerTempTable(\"finalOutputTable\")",
"source": "-"
}
]
}
在這個模塊里,你可以訪問任何一張已經(jīng)注冊的表肪虎。并且經(jīng)過處理后注冊一張新的表劣砍。給了大家無線的靈活性。
如果source 設(shè)置為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": {
}
}
}
另外,對于輸出迅腔,我們也可以控制文件數(shù)目:
{
"name": "batch.outputs",
"params": [
{
"name": "jack",
"format": "json",
"path": "file:///tmp/batch-console",
"outputFileNum": "3",
"inputTableName": "finalOutputTable",
"mode": "Overwrite"
}
]
}
其中 outputFileNum 就是你最后的輸出文件數(shù)装畅。你也可以通過batch.script.df 模塊控制輸出的文件數(shù)。無非就是df.repartion(3).registerTable("finalOutputTable") 即可達(dá)成沧烈。
下載地址:StreamingPro