0

df_aデータフレームとが与えられた場合df_b、結合を除いて左と同じ結果を得るにはどうすればよいですか:

SELECT df_a.*
FROM df_a
  LEFT JOIN df_b
    ON df_a.id = df_b.id
WHERE df_b.id is NULL

私はもう試した:

df_a.join(df_b, df_a("id")===df_b("id"), "left")
  .select($"df_a.*")
  .where(df_b.col("id").isNull)

上記から例外が発生します。

Exception in thread "main" java.lang.RuntimeException: Unsupported literal type class scala.runtime.BoxedUnit ()
4

2 に答える 2

1

SQLクエリ自体を実行してみることができます - シンプルに保ちます..

df_a.registerTempTable("TableA")
df_b.registerTempTable("TableB")
result = sqlContext.sql("SELECT * FROM TableA A \
                          LEFT JOIN TableB B \
                          ON A.id = B.id \
                          WHERE B.id is NULL ")
于 2017-04-11T01:53:57.337 に答える