2016-05-25 15 views
0

スパークSQLを使用して3つのテーブルを結合していますが、複数のカラム条件でエラーが発生します。スパーク複数条件結合

test_table = (T1.join(T2,T1.dtm == T2.kids_dtm, "inner") 
      .join(T3, T3.kids_dtm == T1.dtm 
       and T2.room_id == T3.room_id 
       and T2.book_id == T3.book_id, "inner")) 

ERROR:指定の代わりに

Traceback (most recent call last): 
    File "<stdin>", line 4, in <module> 
    File "/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/spark/python/pyspark/sql/column.py", line 447, in __nonzero__ 
    raise ValueError("Cannot convert column into bool: please use '&' for 'and', '|' for 'or', " 
ValueError: Cannot convert column into bool: please use '&' for 'and', '|' for 'or', '~' for 'not' when building DataFrame boolean expressions. 

"とは"、私は "&" と "& &" が、これらの作品のどれも入れて試してみました。どんな助けもありがとう。

答えて

0

NVM、 "&" を使用した作品やブラケット、以下:

test_table = (T1.join(T2,T1.dtm == T2.kids_dtm, "inner") 
     .join(T3, (T3.kids_dtm == T1.dtm) 
      & (T2.room_id == T3.room_id) 
      & (T2.book_id == T3.book_id), "inner"))