pysparkのcsvファイルのヘッダーから文字列のリストを作成しようとしています。 csvファイルのヘッダーはUnicode形式です。私は、ヘッダを読み、このコードを書いたが、それはヘッダから個々の値でリストを形成していない:は、pysparkのcsvファイルのヘッダーから文字列のリストを作成します。
def filter(line):
return line
read_file = sc.textFile('file:///file1.csv').zipWithIndex().filter(lambda (line, rownum): rownum == 0).map(lambda (line, rownum): line)
data = (read_file
.map(lambda line: line.split(","))
.filter(lambda line: len(line) >= 1)
.map(filter))
print data.collect()
私が見出力は次のようになります。私はそれがしたいながら
[[u'header1', u'header2', u'header3', u'header4', u'header5']]
be ['header1','header2','header3','header4','header5']
どのように修正してリストを作成できますか?
あなたの特定の問題を解決するのに十分な簡単
コードの最後に '[0]'を追加するだけです。 'u'を心配しないでください、無害です。つまり、実際には良いことですが、それは単なる文字列ではなく、ユニコードオブジェクトです。 data.collect()内のヘッダ:print headerを試してみたら、ヘッダだけが表示されます: –
@AlexHall '[0]'はどこに置かれますか? – user2966197
表示されるのは、1つの要素、つまりリストを含むリストです。その要素を '[0]'で抽出することができます。 'data.collect()[0]'または 'data.collect()[0]:print header'の' for header '(これは忘れました)。 –