小编soo*_*ote的帖子

将Spark DataSet行值映射到新的哈希列

给出以下DataSetinputData:

column0 column1 column2 column3
A       88      text    99
Z       12      test    200
T       120     foo     12
Run Code Online (Sandbox Code Playgroud)

在星火,什么是计算一个新的有效途径hash列,并将它添加到一个新的DataSet,hashedData其中hash被定义为应用MurmurHash3过的每一行的值inputData.

具体来说,hashedData如下:

column0 column1 column2 column3 hash
A       88      text    99      MurmurHash3.arrayHash(Array("A", 88, "text", 99))
Z       12      test    200     MurmurHash3.arrayHash(Array("Z", 12, "test", 200))
T       120     foo     12      MurmurHash3.arrayHash(Array("T", 120, "foo", 12))
Run Code Online (Sandbox Code Playgroud)

如果需要更多细节,请告诉我.

任何帮助表示赞赏.谢谢!

scala apache-spark spark-dataframe apache-spark-dataset

7
推荐指数
2
解决办法
6411
查看次数

是否有任何性能问题迫使在 spark 中使用计数进行急切评估?

通常我Dataset.count在 3 个场景中看到整个代码库:

  1. 日志记录 log.info("this ds has ${dataset.count} rows")
  2. 分枝 if (dataset.count > 0) do x else do y
  3. 强制缓存 dataset.persist.count

它是否会通过强制查询优化器在任何这些场景中过早地急切来阻止查询优化器创建最有效的 dag?

apache-spark

4
推荐指数
1
解决办法
1092
查看次数