0
私はスパークDFのMap列を持っていて、特定のキーでこの列をフィルタリングしたいと考えています。Pysparkマップにキーまたは値が存在するかどうかを確認する方法
例えば、私のスキーマは次のように定義されています。私のサンプルデータがある
df_schema = StructType(
[StructField('id', StringType()),
StructField('rank', MapType(StringType(), IntegerType()))]
)
:
{ "id": "0981850006", "rank": {"a": 1} }
は「」ランク」である行の私のDFをフィルタリングする方法はあります"explode()を使わずに?
与えられたJSONのスキーマ表現は、私が定義したものより優れていますか?
を 'explode'は、おそらく最良の解決策です。それを使用したくない場合は、UDF – MaFF
Thanks @ Marieを書く必要があります。これを行うためにUDFを書く方法を提案したり、Mapタイプのキー値属性にアクセスするためのガイダンスを提供してください。また、sqlContext.sql( "select rank.key from test_df")を使用してMapキーにアクセスしようとしましたが、これは機能しません。 – Stephan