【问题标题】:Split a spark dataframe with row delimiter使用行分隔符拆分 Spark 数据帧
【发布时间】: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聚合函数吗?我仍在弄清楚语义。如果有人尝试过,请告诉我。

标签: apache-spark dataframe apache-spark-sql rdd spark-dataframe


【解决方案1】:

感谢https://stackoverflow.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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多