2016-04-11 4 views
1

内部フィールドに基づいてネストPySparkデータフレームをフィルタリングする:私はサンプル要素(テイク(1)で得られた)されたデータフレームを有する

ある
[Row(id=u'1', objects=Row('a'=Row(fav=True, ratio=0.5), 'b'=Row(fav=False, ratio=0.0))] 

、構造が複合されるように、カラムオブジェクトは、行の配列です(複合であり、2つのフィールドを含みます)。

入れ子要素、つまりオブジェクトの内容に基づいてどのようにフィルタリングしますか? idが '1'の行について、オブジェクトの「b」という比率で検索したいとします。

答えて

1

これを試してみてください:

>>> df = sc.parallelize([Row(id=u'1', objects=Row(a=Row(fav=True, ratio=0.5), b=Row(fav=False, ratio=0.0)))]).toDF() 
>>> df.where("id = 1").select("objects.a.ratio").show() 
+-----+ 
|ratio| 
+-----+ 
| 0.5| 
+-----+ 
関連する問題