2017-11-09 11 views
-1

RDDデータから特定の列を選択しようとしています。私のデータは次のようになります:RDDで列を選択

colA | colB 
1 | cat,bat 
2 | cat 
3 | horse,elephant, mouse 

さまざまな長さのcolBを抽出したいと思います。

colB 
cat,bat 
cat 
horse,elephant,mouse 

私はRDDを作成することによって、次のよう:

sqlContext = SQLContext(sc) 
data = sc.textFile("filename").map(lambda line: line.split(",")) 
+0

缶あなたはrddがどのように作成されたかを示しますか? –

+0

オリジナルの投稿にコードを追加しました。ありがとう。 – Nivi

+0

ok、colAとcolBの分離方法は?私はコンマで ''、 '? –

答えて

1

だから、議論の後にのみcat,cat,horse を抽出

coldata = rdd.map(lambda x: x[1]) 

私は、抽出したデータになりたい:私はやってみましたコメントでは、あなたのカラムに区切り文字としてカンマがあることが分かりました。同時に、 "colB"列で値を区切るコンマを使用します。あなたのスクリプトでは、カンマで区切って列を解析しようとしています。だから、使用セミコロン(または列の区切り文字として何か)のいずれかを行うか、COLBの値のための区切り文字を変更します。

ファイル:

colA;colB 
1;cat,bat 
2;cat 
3;horse,elephant, mouse 

その後RDDを取得するには、このコードを使用します。

rdd = sc.textFile("filename").map(lambda line: line.split(";")) 
+1

それは動作します。あなたのお時間をありがとうございました。 – Nivi