【问题标题】:How to insert record into a dataframe in spark如何在火花中将记录插入数据框中
【发布时间】:2016-08-12 02:45:50
【问题描述】:

我有一个数据框 (df1),它有 50 列,第一个是 cust_id,其余的是特征。我还有另一个仅包含 cust_id 的数据框(df2)。我想将 df2 中的每个客户的一条记录添加到 df1 中,所有功能都为 0。但是由于两个数据框有两个不同的模式,我不能做一个联合。最好的方法是什么?

我使用完全外连接,但它会生成两个 cust_id 列,我需要一个。我应该以某种方式合并这两个 cust_id 列,但不知道如何。

【问题讨论】:

  • 呃,你试过什么?
  • 我什么都没想到!
  • 完全外连接可能有帮助?
  • H.Z.,我也不知道:/(但是,请注意我没有投反对票)。祝你好运!
  • @H.Z.你的问题解决了吗?

标签: scala apache-spark


【解决方案1】:

您可以尝试通过执行如下的完全外部联接来实现类似的目标:

val result = df1.join(df2, Seq("cust_id"), "full_outer")

但是,功能将是 null 而不是 0。如果您真的需要它们为零,一种方法是:

val features = df1.columns.toSet - "cust_id" // Remove "cust_id" column
val newDF = features.foldLeft(df2)(
  (df, colName) => df.withColumn(colName, lit(0))
)
df1.unionAll(newDF)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2018-07-08
    • 2018-09-19
    • 2016-04-10
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多