我的目标是从Cloud存储中读取avro文件数据,然后使用Java将其写入BigQuery表。如果有人提供代码snipet / ideas来读取avro格式的数据并将其使用Cloud Dataflow写入BigQuery表,那将是很好的选择。
答案 0 :(得分:1)
为此,您可以尝试使用以下Python脚本:
import apache_beam as beam
import sys
PROJECT='YOUR_PROJECT'
BUCKET='YOUR_BUCKET'
def run():
argv = [
'--project={0}'.format(PROJECT),
'--staging_location=gs://{0}/staging/'.format(BUCKET),
'--temp_location=gs://{0}/staging/'.format(BUCKET),
'--runner=DataflowRunner'
]
p = beam.Pipeline(argv=argv)
(p
| 'ReadAvroFromGCS' >> beam.io.avroio.ReadFromAvro('gs://{0}/file.avro'.format(BUCKET))
| 'WriteToBigQuery' >> beam.io.WriteToBigQuery('{0}:dataset.avrotable'.format(PROJECT))
)
p.run()
if __name__ == '__main__':
run()
希望有帮助。
答案 1 :(得分:1)
我看到两种可能的方法:
isPrinted:false