小编big*_*ann的帖子

为什么dataset.count导致shuffle!(火花2.2)

这是我的数据帧:

在此输入图像描述

底层RDD有2个分区

在此输入图像描述 在此输入图像描述

当我做df.count时,产生的DAG是 在此输入图像描述

当我执行df.rdd.count时,生成的DAG是:

在此输入图像描述

:Count是spark中的一个动作,官方定义是'返回DataFrame中的行数'.现在,当我对数据帧执行计数时,为什么会发生洗牌?此外,当我在底层RDD上做同样的事情时,不会发生随机播放.

对我来说无论如何都会发生洗牌是没有意义的.我试图通过这里的计数源代码来解决spark github 但它对我来说没有任何意义."groupby"是否被提供给行动的罪​​魁祸首?

PS.df.coalesce(1).count不会导致任何混乱

scala apache-spark rdd spark-dataframe

12
推荐指数
2
解决办法
2548
查看次数

pydata BLAZE 项目走向何方?

我发现 blaze 生态系统*很棒,因为它涵盖了大多数数据工程用例。在 2015-2016 年期间,这些项目肯定引起了很多兴趣,但最近却被忽视了。我说这是查看 github 存储库上的提交。

所以我对社区的问题是

- 2016 年发生了什么导致失去兴趣的事情?

- 是否有其他基于 Python 的库取代了 blaze?

火焰生态系统:

  • Blaze:查询不同存储系统数据的接口
  • Dask:通过任务调度和阻塞算法进行并行计算
  • Datashape:一种数据描述语言
  • DyND:用于动态多维数组的 C++ 库
  • Odo:不同存储系统间的数据迁移

参考资料:http : //blaze.pydata.org/

blaze datashape dask odo

7
推荐指数
1
解决办法
553
查看次数

自我加入与DataFrame API无法正常工作

我试图从使用自联接的表中获取最新记录.它可以使用spark-sql但不能使用spark DataFrameAPI.

有人可以帮忙吗?这是一个错误吗?

我在本地模式下使用Spark 2.2.0

创建输入DataFrame:

scala> val df3 = spark.sparkContext.parallelize(Array((1,"a",1),(1,"aa",2),(2,"b",2),(2,"bb",5))).toDF("id","value","time")
df3: org.apache.spark.sql.DataFrame = [id: int, value: string ... 1 more field]    

scala> val df33 = df3
df33: org.apache.spark.sql.DataFrame = [id: int, value: string ... 1 more field]

scala> df3.show
+---+-----+----+
| id|value|time|
+---+-----+----+
|  1|    a|   1|
|  1|   aa|   2|
|  2|    b|   2|
|  2|   bb|   5|
+---+-----+----+

scala> df33.show
+---+-----+----+
| id|value|time|
+---+-----+----+
|  1|    a|   1|
|  1|   aa|   2| …
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql

5
推荐指数
1
解决办法
2649
查看次数