(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版本中或许会得到支持,但还有一些其它的操作很难在流数据上高效的实现。例如,不支持对输入流进行排序,因为它需要跟踪流中接收到的所有数据。因此,从根本上难以有效执行。

上一篇:Pytorch教程(2)--0. 快速入门


下一篇:IOS开发应用