火花 1.5.2 左外连接不起作用



>我有两个数据帧

  • df1 有 500 列,其中一列是 id(StringType(,记录数 1000 万
  • df2 有 4 列,其中一列是 id(StringType(,另外 3 列(比如 x、y、z(名称与 3 列 df1(同名,即 x、y、z(匹配,它包含 20 万条记录

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

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

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

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

该怎么做,以及我何时尝试

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

怎么办?

您需要提供列引用 - 如错误消息中所述。您可以通过导入spark.implicits._并使用$id列设置别名来执行此操作:

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

相关内容

  • 没有找到相关文章