2017-02-24 19 views
0

私は、1つの列がリストで満たされているエントリ、または空のリストだけを含むpysparkデータフレームを持っています。空リストを含むすべての行を効率的にフィルタリングしたい。Pysparkは、.filter()を使用して空のリストをフィルタリングします。

df.filter(sf.col('column_with_lists') != [])は私に次のエラーが返されます。

Py4JJavaError: An error occurred while calling o303.notEqual. 
: java.lang.RuntimeException: Unsupported literal type class 

おそらく、私は、リストの長さをチェックし、それは> 0でなければなりません課すことができる(hereを参照してください)。しかし、私はpyspark-sqlを使用していて、filterでもラムダが許可されている場合、この構文がどのように機能するかはわかりません。

おそらく、私は複数の列を持っていますが、すべてのエントリを削除して、上記のフィルタを1つに適用したいと考えています。リンクされたSOの例は、単一の列でフィルタリングされます。

ありがとうございます!

答えて

0

だから、それはsf.sizeを使用するのと同じくらい簡単です表示されます。

df.filter(sf.size('column_with_lists') > 0)

関連する問題