作者:mobiledu2502922957 | 来源:互联网 | 2022-12-08 16:59
我已将CSV数据加载到Spark DataFrame中。
我需要将此数据帧切成两个不同的数据帧,其中每个数据帧都包含来自原始数据帧的一组列。
如何基于列选择Spark数据框中的子集?
1> puhlen..:
如果要将数据帧分为两个不同的数据帧,请使用所需的不同列对其进行两个选择。
val sourceDf = spark.read.csv(...)
val df1 = sourceDF.select("first column", "second column", "third column")
val df2 = sourceDF.select("first column", "second column", "third column")
请注意,这当然意味着对sourceDf进行两次评估,因此,如果它可以放入分布式内存中并且您在两个数据帧中使用大多数列,则缓存它可能是一个好主意。它有许多不需要的多余列,然后您可以先对其进行选择,然后再选择需要的列,这样它将所有这些多余的数据存储在内存中。