2016-03-01 6 views
5

を特定のフィールドを取得、私はこれがあるchosen_userデータを、アクセスしたいです_idフィールド。私はすることができます私は今</p> <pre><code>sc = SparkContext() sqlc = SQLContext(sc) users_df = sqlc.read.json('users.json') </code></pre> <p>としてJSONファイルから<em>pyspark</em>を通じて構築スパークデータフレームを持ってPyspark DATAFRAMEで選択された行から

print users_df[users_df._id == chosen_user].show() 

これは私にユーザーの完全な行を与えます。しかし、行の中に特定のフィールドを1つだけ望み、ユーザーの性別をどのように取得すればよいとしますか?

+0

複数の 'selected_user'の値に基づいて行を抽出することはできますか? – Nivi

答えて

13

だけでフィルタリングして選択します。

result = users_df.where(users_df._id == chosen_user).select("gender") 

またはcol

from pyspark.sql.functions import col 

result = users_df.where(col("_id") == chosen_user).select(col("gender")) 

とを最後にPySpark は、たとえばflatMapのためにあなたができるように、単にいくつかの拡張子を持つtupleです:

result.rdd.flatMap(list).first() 

またはmapは次のようになります。

result.rdd.map(lambda x: x.gender).first() 
+0

実際の値を抽出して変数に入れる方法についてもコメントできますか?あなたの解決策では、最後にアクション「収集」を実行すると[行(gender = u'male ')]になります。私は本当に '男性'を変数に入れたいと思っています。 –

+0

編集内容を確認してください。 – zero323

+0

完璧、ありがとう。 –

関連する問題

 関連する問題