【问题标题】:spark 1.5.2 left outer join not workingspark 1.5.2 左外连接不起作用
【发布时间】:2018-08-17 12:55:24
【问题描述】:

我有两个数据框

  • df1 500列,其中一列是id(StringType),记录数1000万
  • df2 有 4 列,其中 1 列是 id(StringType),其他 3 列(比如 x,y,z) 名称匹配 df1 的 3 列(同名,即 x,y,z),它包含 0.2百万条记录

我想做左连接,因此加入 df 必须有 500 列的 1000 万条记录

  df1.join(df2, "id", "left_outer")

它给了我错误 错误:类型不匹配:

  found   : String("id")
  required: org.apache.spark.sql.Column

做什么,什么时候尝试

它给了我 org.apache.spark.sql.AnalysisException:字符串类型的连接条件“id”不是布尔值。

怎么办?

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    您需要提供列参考 - 如错误消息中所述。您可以通过导入spark.implicits._ 并使用$id 列设置别名来做到这一点:

    导入 df1.sparkSession.implicits._ df1.join(df2, $"id", "left_outer")

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      相关资源
      最近更新 更多