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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

再见2015 再见cmd

本文作者:IMWeb yisbug 原文出处:IMWeb社区 未经同意,禁止转载 2015年已经快要过去了,你是否还在使用有着十几年历史的cmd命令行...

2859
来自专栏PHP在线

Web安全实战

前言 本章将主要介绍使用Node.js开发web应用可能面临的安全问题,读者通过阅读本章可以了解web安全的基本概念,并且通过各种防御措施抵御一些常规的恶意攻击...

35610
来自专栏魏艾斯博客www.vpsss.net

解决 Memcached telnet:connect to address 127.0.0.1:Connection refused

有一次魏艾斯博客重启了一下服务器,然后就发现打开网站速度没有之前快了,按照MemcacheD 缓存是否启用成功及命中率检查的办法建立了 phpinfo 文件,检...

7151
来自专栏信安之路

渗透测试信息收集工具篇

如果知道目标的域名,你首先要做的就是通过 Whois 数据库查询域名的注册信息,Whois 数据库是提供域名的注册人信息,包括联系方式,管理员名字,管理员邮箱等...

4620
来自专栏FreeBuf

Kali Linux渗透基础知识整理(四):维持访问

*本文原创作者:sysorem 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限。使用木马程序、后门程序和rootkit来达到这一目的。...

3418
来自专栏张善友的专栏

通过企业分布式缓存共享运行时数据

许多企业都结合使用 Microsoft .NET Framework 和 Java 应用程序,尤其是那些出于各种考虑不能只依赖于单一技术的大中型企业。 通常,企...

2488
来自专栏软件测试经验与教训

看图说话:持久式XSS(跨站)漏洞示例

读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!

2392
来自专栏Phoenix的Android之旅

那些伪造IP的软件都是什么原理

很多人可能都有过这个念头, 如何伪装客户端IP? 还有那些投票刷票的工具是怎么个原理?

2183
来自专栏SAP最佳业务实践

SAP最佳业务实践:使用看板的生产制造(233)-8经典看板:使用警报的库存转储(完整仓库管理)

image.png 若要对通过完整仓库管理处理过的组件进行转储,可使用此功能。当看板设置为 空 时,此功能将自动触发创建运输请求和运输单。 1、PK13N将可用...

3197
来自专栏晨星先生的自留地

黑客技能训练之攻破VulnOS 2

2773

扫码关注云+社区

领取腾讯云代金券