如何使用管道从表中提取数据并将其作为csv存储在GS中?到目前为止,我只能通过提取每个字段,将其连接到一个字符串然后输出它,以简单的文本格式提取数据。
有谁知道这方法? 感谢。
答案 0 :(得分:0)
使用BigQuery ICO读取Bigquery
要从BigQuery表中读取,请应用BigQueryIO.Read转换。 BigQueryIO.Read返回BigQuery TableRow对象的PCollection,其中PCollection中的每个元素代表表中的一行。
您可以通过向>提供BigQuery表名来阅读整个BigQuery表。 BigQueryIO.Read使用.from操作。以下示例代码显示>如何应用BigQueryIO.Read转换来读取整个BigQuery表:
PipelineOptions options = PipelineOptionsFactory.create(); 管道p = Pipeline.create(options);
PCollection weatherData = p.apply( BigQueryIO.Read .named( “ReadWeatherStations”) 。从( “clouddataflow-只读:samples.weather_stations”));
Reading from BigQuery
写入CSV - 使用 - TextIO.Write
要将数据输出到文本文件,请将TextIO.Write应用于要输出的PCollection。使用TextIO.Write时,请记住以下事项:
您只能将TextIO.Write应用于PCollection。在使用TextIO.Write写入之前,您可能需要使用简单的ParDo将数据从中间PCollection格式化为PCollection。 输出PCollection中的每个元素将在结果文本文件中表示一行。 Dataflow的基于文件的写操作(如TextIO.Write)默认写入多个输出文件。有关详细信息,请参阅编写输出数据。
PCollection filteredWords = ...; filteredWords.apply(TextIO.Write.named( “WriteMyFile”) 。要( “GS://一些/ outputData”));