2
私は数億のレコードを持つ大きなデータフレームを持っています。私はdfの10%しか必要としないので、dfを読んでいる間にdfをフィルタリングしています。フィルタ条件は動的で、ある実験から別の実験に変化します。[]形式のリストを()形式に変換する方法
私はフィルタの値を取得しています、そこから別のDFがあります:
filter = "filter_condition in" + tuple(df1.select("xxx").rdd.flatMap(lambda x: x).collect())
上記のスニペットは、リストが表示されますが、私は大きなファイルを読み込むには、以下のクエリを使用しています[1]
例えば言います:
large_df = (sqlContext.read.parquet(path).filter(filter))
タプルが1つの以上の要素を持っている場合、クエリが正常に動作しますが、フィルタ条件のみが1の値を持つときにタプルが(として出てきます1)又は(10293)等とフィルタ条件が
(sqlContext.read.parquet(path).filter("filter_condition in (1,)"))
ことが出てくるので、大きなDFを読みながら、これはエラーの原因リストを変換する方法はあります[1](1)〜フォーマット。ありがとう
おかげで多くのことを。あなたのアプローチは機能します。ヘルプをよろしくお願いいたします。 – Yuvaraj