2017-07-12 12 views
1

私はpysparkの初心者です.RDDの行を1行に読み込んでマージしようとしています。pyspark - カスタム区切り文字を含むファイルをRDDに読み込みますか?

私は、次のテキストファイル持っていると仮定すると:今

A1 B1 C1 
A2 B2 C2 D3 
A3 X1 YY1 
DELIMITER_ROW 
Z1 B1 C1 Z4 
X2 V2 XC2 D3 
DELIMITER_ROW 
T1 R1 
M2 MB2 NC2 
S3 BB1 
AQ3 Q1 P1" 

を、私はすべての行を結合したい1行に(DELIMITER_ROW間の)各セクションに表示され、これらの合併行のリストを返します。これは、RDDを使用してpysparkに

[[A1 B1 C1 A2 B2 C2 D3 A3 X1 YY1] 
[Z1 B1 C1 Z4 X2 V2 XC2 D3] 
[T1 R1 M2 MB2 NC2 S3 BB1 AQ3 Q1 P1]] 

を行うことができます方法:

私は、リストのこの種を作成したいですか?今の

私はファイルを読み込み、区切り行をフィルタリングする方法を知っている:

sc.textFile(pathToFile).filter(lambda line: DELIMITER_ROW not in line).collect() 

が、私は1行に各セクション内の行に/グループコンバイン/マージ/軽減する方法がわかりません。

ありがとうございました。

答えて

2

読み込みと分割以外に、hadoopConfiguration.setを使用して、行を区切り、行を分割する区切り文字を設定することができます。

spark.sparkContext.hadoopConfiguration.set("textinputformat.record.delimiter", "DELIMITER_ROW")

は、この情報がお役に立てば幸い!

+1

ありがとうございました。 (ツェッペリンを使用して)pysparkにおいて I書き込み: CONF = sc._jsc.hadoopConfiguration() conf.set( "textinputformat.record.delimiter"、 "DELIMITER_ROW") .... MY CODE conf.set ( "textinputformat.record.delimiter"、 "\ n") – Nir

+0

うれしいことがあなたにアップしてくれてありがとう –

関連する問題