2017-10-17 7 views
0

私はcsvファイルをApacheのビームアプリケーションのリストに読み込みます。リストの各要素はタプルまたはリストです問題)、私はCSVpython - from apache_beam.io import fileioはエラーを返します:fileioをインポートできません

1,2,3 
4,5,6 

は、私が試した

[(1,2,3) , (4,5,6)] 

または

[ [1,2,3], [4,5,6] ] 

になっているだろうように、 How to convert csv into a dictionary in apache beam dataflow の指示に従うが、私は

from beam_utils.sources import CsvFileSource 

を使用しようとすると、私は私が直接

from apache_beam.io import fileio 

をインポートしようと

from beam_utils.sources import CsvFileSource 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/site-packages/beam_utils/sources.py", line 9, in <module> 
    from apache_beam.io import fileio 
ImportError: cannot import name fileio 

は、私は私ができるが、同じ問題をゲット両方を使用する

import apache_beam.io 
import beam_utils 

問題なし。問題がどういうものか、誰かが良いアイデアを得たか、これをどうやって別の方法でやり遂げることができるのかを知っていますか?

私はほんの数分前に、これと同じ問題に遭遇したあまりにもよく

答えて

0

を作品別の方法で目的の形式にcsvfileを回すことができる場合、私は現在、とても

with beam.Pipeline(options = pipeline_options) as p: 
     csvfile = p | ReadFromText(known_args.input) 

を持っています。問題は、fileioが明らかにapache_beam(少なくとも私にとってはそうではありません)になっていないことです。それはfilesystemに置き換えられているようです。

ない優れたソリューションが、beam_utilsからsources.pyに私は "ファイルシステム" と "FILEIO" のすべてのインスタンスを置き換え

ので

from apache_beam.io import fileio 

from apache_beam.io import filesystem 
+0

なり私がすることにしました最後にbeam_utilsを使用せず、データをリスト/ dict自分自身に入力する方法を見つけましたが、あなたが説明したようなものが問題であると思っていました。ときには醜い修正が最高です:) –

+0

こんにちは@TrotteBoman、私たちとあなたのソリューションを共有する気に?これも探していました。 :) – Ventus

+0

私はこれらの例を示唆している私に教えてくれれば私は私が見ることができない場合はhttps://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples/complete/game @Ventusをお勧めします私が書いたのは基本的にここからです –

関連する問題