使用行分隔符拆分 Spark 数据帧
Posted
技术标签:
【中文标题】使用行分隔符拆分 Spark 数据帧【英文标题】:Split a spark dataframe with row delimiter 【发布时间】:2016-06-20 09:49:53 【问题描述】:这是我的数据框
这个数据框工作的基本 RDD 是用索引压缩的。我想将此原始数据帧拆分为多个数据帧,其中分隔符基于第一列字符串(例如,在这种情况下为“GCKN”)。
我假设如果我得到单独的数据帧,我也可以组合其他值,例如 this..
A F G
GCKN:GCKN_cppr0/in:GCKN_cppr0/out:GCKN_cppr15/in.. -71 531
这可能吗。最好的方法是什么?
【问题讨论】:
这里可以使用spark聚合函数吗?我仍在弄清楚语义。如果有人尝试过,请告诉我。 【参考方案1】:感谢https://***.com/a/32750733/1384205 我能够通过将 rdd 与 UDF 映射来实现这一点。
添加了行 ID。当找到分隔符时,这将增加 id
.map(x =>
if(flag==true) cnt+=1
if(x.startsWith("GCKN,")) flag=true else flag=false
(cnt + "," + x)
)
紧随其后
val eprGroupedDF1 = eprDF1
.groupBy("sIndex")
.agg(GroupConcat(eprDF1.col("A")),sum("B").alias("B"))
.sort("sIndex")
【讨论】:
以上是关于使用行分隔符拆分 Spark 数据帧的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 和“|”将 spark 数据帧写入文件分隔符
如何通过 Delimiter 拆分 Spark RDD 的行