(13)不支持的操作

不支持的操作

有些DataFrame / Dataset的操作是Streaming DataFrames / Datasets不支持的。 其中一些如下。

,流Datasets不支持多个流聚合(即流DF上的聚合链)。

,流数据集不支持Limit 和取前N行。

,不支持流dataset/dataframe的Distinct 操作。

,只有在有聚合操作且是Complete 输出模式,流数据集才支持排序操作。

,有条件地支持流和静态数据集之间的外连接。

不支持与流数据集Full outer join

不支持与右侧的流数据集Left outer join

不支持与左侧的流数据集Right outer join

F),两个流数据集之间的任何类型的join都不支持。

此外,还有一些Dataset方法将不适用于流数据集,这些操作立即执行查询并返回结果,这在流数据集上没有意义。相反,这些功能可以通过显式启动流式查询来完成。

,Count()- 无法从流数据集返回单个计数。 可以使用ds.groupBy().count()返回一个包含运行计数的流数据集。

,foreach() - 使用ds.writeStream.foreach(...) 代替

,show() -使用console sink 代替

如果尝试任何这些操作,将看到一个AnalysisException,如“操作XYZ不支streaming DataFrames/Datasets”。虽然一些操作在未来的Spark版本中或许会得到支持,但还有一些其它的操作很难在流数据上高效的实现。例如,不支持对输入流进行排序,因为它需要跟踪流中接收到的所有数据。因此,从根本上难以有效执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值