如何在Spark / Cala中使用窗口函数使用countDistinct?

用户名

我需要使用按2列划分的窗口函数,并在第3列和第4列进行不同的计数。我可以算出任何问题,但是使用不同的计数会抛出异常-

rg.apache.spark.sql.AnalysisException: Distinct window functions are not supported: 

有什么解决方法吗?

先前的答案提出了两种可能的技术:近似计数和size(collect_set(...))两者都有问题。

如果需要精确计数,这是在大数据中使用COUNT(DISTINCT ...)的主要原因,则不会进行近似计数。同样,对于小数据,对实际错误率的近似计数可能会有很大差异。

size(collect_set(...))可能会导致大数据处理速度大幅下降,因为它使用可变的Scala HashSet,这是一个非常慢的数据结构。另外,您有时可能会得到奇怪的结果,例如,如果在空的数据帧上运行查询,因为size(null)会产生与直觉相反的-1。由于多种原因,Spark的本机非重复计数运行速度更快,主要是因为它不必在数组中生成所有计数的数据。

解决此问题的典型方法是使用自联接。您可以根据需要对任何列进行分组,计算非重复计数或任何其他不能用作窗口函数的聚合函数,然后再联接回原始数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Spark / Cala中使用窗口函数使用countDistinct?

来自分类Dev

如何在Spark中使用Scala中的countDistinct?

来自分类Dev

如何在Spark中使用窗口函数过滤数据

来自分类Dev

如何在Hive / Spark SQL中使用窗口函数删除重叠

来自分类Dev

如何在Spark窗口函数中以降序使用orderby()?

来自分类Dev

如何在Doctrine查询构建器(Symfony)中使用countDistinct

来自分类Dev

如何在函数中使用{bootstrap}弹出窗口

来自分类Dev

何时以及如何在PostgreSQL中使用窗口函数?

来自分类Dev

在Apache Spark SQL中,如何在窗口函数中使用collect_list时删除重复的行?

来自分类Dev

如何在Java中使用Spark的.newAPIHadoopFile()

来自分类Dev

如何在Spark中使用jni?

来自分类Dev

如何在Spark Shell中使用TwitterUtils?

来自分类Dev

如何在Spark中使用jni?

来自分类Dev

如何在MySQL中使用Spark DataFrame

来自分类Dev

如何在Spark中使用组合?

来自分类Dev

如何使用VBA在windowapi中使用findwindow函数查找窗口?

来自分类Dev

如何在Scala Spark中使用窗口滞后来查找更改

来自分类Dev

如何在Spark中的映射函数中使用数据框?

来自分类Dev

如何在Spark TextFile函数中使用自定义换行符?

来自分类Dev

如何在Apache Spark中使用Hadoop InputFormats?

来自分类Dev

如何在Spark SQL(DataFrame)的UDF中使用常量值

来自分类Dev

如何在Hadoop / Spark中使用proto3?

来自分类Dev

如何在Spark SQL中使用压缩的列式存储?

来自分类Dev

如何在Spark / Scala解释器(REPL)中使用JDBC?

来自分类Dev

如何在Web项目中使用Spark mllib

来自分类Dev

如何在flatMap中使用Spark SQL DataFrame?

来自分类Dev

如何在spark-sql中使用“ not rlike”?

来自分类Dev

如何在Java中使用Spark 2.0.0预览

来自分类Dev

如何在Spark SQL中使用配置单元挂钩

Related 相关文章

  1. 1

    如何在Spark / Cala中使用窗口函数使用countDistinct?

  2. 2

    如何在Spark中使用Scala中的countDistinct?

  3. 3

    如何在Spark中使用窗口函数过滤数据

  4. 4

    如何在Hive / Spark SQL中使用窗口函数删除重叠

  5. 5

    如何在Spark窗口函数中以降序使用orderby()?

  6. 6

    如何在Doctrine查询构建器(Symfony)中使用countDistinct

  7. 7

    如何在函数中使用{bootstrap}弹出窗口

  8. 8

    何时以及如何在PostgreSQL中使用窗口函数?

  9. 9

    在Apache Spark SQL中,如何在窗口函数中使用collect_list时删除重复的行?

  10. 10

    如何在Java中使用Spark的.newAPIHadoopFile()

  11. 11

    如何在Spark中使用jni?

  12. 12

    如何在Spark Shell中使用TwitterUtils?

  13. 13

    如何在Spark中使用jni?

  14. 14

    如何在MySQL中使用Spark DataFrame

  15. 15

    如何在Spark中使用组合?

  16. 16

    如何使用VBA在windowapi中使用findwindow函数查找窗口?

  17. 17

    如何在Scala Spark中使用窗口滞后来查找更改

  18. 18

    如何在Spark中的映射函数中使用数据框?

  19. 19

    如何在Spark TextFile函数中使用自定义换行符?

  20. 20

    如何在Apache Spark中使用Hadoop InputFormats?

  21. 21

    如何在Spark SQL(DataFrame)的UDF中使用常量值

  22. 22

    如何在Hadoop / Spark中使用proto3?

  23. 23

    如何在Spark SQL中使用压缩的列式存储?

  24. 24

    如何在Spark / Scala解释器(REPL)中使用JDBC?

  25. 25

    如何在Web项目中使用Spark mllib

  26. 26

    如何在flatMap中使用Spark SQL DataFrame?

  27. 27

    如何在spark-sql中使用“ not rlike”?

  28. 28

    如何在Java中使用Spark 2.0.0预览

  29. 29

    如何在Spark SQL中使用配置单元挂钩

热门标签

归档