Я использую CSVRecordSource для чтения CSV в конвейере Apache Beam, который использует open_file в функции read_records.
С python 2 все работало нормально, но когда я мигрировал на python 3, он жалуется ниже
next(csv_reader)
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
По умолчанию метод open_file открывает файл в двоичном режиме.
Поэтому я изменил его на использование
with open(filename, "rt") as f:
, но он не работает, когда я запускаю поток данных в облаке Google, так как онне может найти файл и выдает ошибку
FileNotFoundError: [Errno 2] No such file or directory
Ниже мой код
with self.open_file(filename) as f:
csv_reader = csv.reader(f, delimiter=self.delimiter, quotechar=self.quote_character)
header = next(csv_reader)
Как я могу использовать CSVRecordSource с python 3?