閱讀350 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 初到!
  下一篇:go 2017數據科學職位報告:R超過SAS,但仍不如Python