0
我在Spark DF中有一個Map列,並且想要在特定鍵上過濾此列(即,如果地圖中的鍵與所需值匹配,則保留該列)。如何檢查Pyspark地圖中是否存在關鍵字或值
例如,我的模式被定義爲:
df_schema = StructType(
[StructField('id', StringType()),
StructField('rank', MapType(StringType(), IntegerType()))]
)
我的樣本數據是:
{ "id": "0981850006", "rank": {"a": 1} }
有什麼辦法來篩選的行我DF其中,「一」是「等級「不使用爆炸()?
是否有比給定的json更好的模式表示?
'explode'可能是最好的解決方案。如果你不想使用它,你將不得不寫一個UDF – MaFF
謝謝@Marie。您能否建議我如何編寫一個UDF來做到這一點,或者提供關於訪問Map類型的鍵值屬性的指導。我也嘗試通過sqlContext.sql(「select test.df中的select rank.key」)訪問Map鍵,但這不起作用。 – Stephan