2017-11-20 2 views
0

カラム名が完全に矛盾している寄木細工ファイルからクエリを行う必要があります。この問題を解決し、モデルが正確にデータを取得できるようにするには、列リストを「プリフェッチ」し、検索する必要がある列を修飾する正規表現パターンを適用する必要があります。擬似コードの場合:リストを使用してクエリでSELECTカラムを定義する

これは達成可能かどうか確認するために検索しましたが、成功しませんでした。これが構文上正しい(または閉じる)場合や、他の提案がある場合は私はそれを公開しています。

おかげ

+0

私はタグpysparkを参照しています。私はあなたがPythonの購入を使用していると仮定しています。スケーラを使用しても問題なければ、ケースクラスは問題を効果的に解決できます。 –

答えて

1

あなたはschema方法のいずれかを使用できますが、また.columnsメソッドを使用することができます。 sparkのselectメソッドはちょっと奇妙で、def select(col: String, cols: String*)と定義されていますので、select(fields:_*)に戻すことはできません。df.select(fields.head, fields.tail:_*)を使用する必要がありますが、醜いですが、幸いなことにselectExpr(exprs: String*)があります。これは以下のように動作します。それは、もちろんこの「ユーザー」で始まる列のみ

fields = df.columns.filter(_.matches("^user.+")) // BYO regexp 
df.selectExpr(fields:_*) 

を取ることdfsqlContext.read.parquet()を搭載した、あなたのデータフレームが含まれていることを前提としています。

関連する問題