处理Spark数据帧/数据集中的重复数据

问题描述 投票:0回答:1

我是Spark和Scala的新手,即使阅读了各种文档,我仍然找不到解决问题的最佳方法。

我有一个相当大的数据集(〜TB),可以按如下方式加载到数据框中:

  1. [1百万行

  2. 列为timedataInfo1Info2

  3. time是浮点数,其他所有都是大小为〜200K的浮点数数组。

  4. [Info1Info2对于所有行都是相同的。

  5. 看来数据帧/数据集无法访问共享变量(例如广播变量)。

  6. 行可以是案例类,但在Spark中不能包含静态变量/同伴对象。

  7. 行不能是常规类。

  8. [唯一的出路似乎在所有列中都具有相同的冗余,info1info2是相同的,但是在诸如此类的情况下似乎非常昂贵。

  9. 使用crossJoin可能会花费过多的通信成本。

对于在Spark中表示数据的任何输入,我将不胜感激。

TIA。

scala apache-spark apache-spark-sql apache-spark-dataset
1个回答
1
投票

以下是最简单的解决方案之一,其中添加了带有常数的新列:

val arr = Array(12.223F, 12.1F, 213.21F)
val df1 = df2.withColumn("info", lit(arr))
© www.soinside.com 2019 - 2024. All rights reserved.