Je veux lire un fichier CSV dans une liste dans une application apache, où chaque élément de la liste est un tuple ou une liste (ne pas vraiment la matière), de sorte que j'aurais le csvpython - de apache_beam.io import fileio donne l'erreur: impossible d'importer le nom fileio
1,2,3
4,5,6
devenir
[(1,2,3) , (4,5,6)]
ou
[ [1,2,3], [4,5,6] ]
J'ai essayé suivant les instructions de How to convert csv into a dictionary in apache beam dataflow mais lorsque je tente d'utiliser
from beam_utils.sources import CsvFileSource
-je obtenir
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
Si je tente d'importer directement
from apache_beam.io import fileio
Je reçois la même question, mais je peux utiliser les deux
import apache_beam.io
import beam_utils
sans aucun problème. Quelqu'un a-t-il une bonne idée de ce que pourrait être le problème ou a-t-il une bonne idée de la façon dont je pourrais le faire différemment?
J'ai actuellement
with beam.Pipeline(options = pipeline_options) as p:
csvfile = p | ReadFromText(known_args.input)
donc si je peux tourner csvfile
au format souhaité d'une autre manière qui fonctionne bien aussi
j'ai décidé de N'utilisez pas beam_utils à la fin et juste trouvé un moyen d'entrer les données dans une liste/dict moi-même, mais je me doutais que quelque chose comme ce que vous avez décrit était le problème. Parfois, des correctifs laids sont les meilleurs :) –
Salut @TrotteBoman, soin de partager votre solution avec nous? Été à la recherche de cela aussi. :) – Ventus
Je suggère ces exemples https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples/complete/game @Ventus, si elles ne m'aident pas à me le dire et je verrai si je peux être utile, mais à la base tout ce que j'ai écrit est d'ici –