如何将CSV文件导入到没有任何列名或架构的BigQuery表中?
我目前正在编写一个Java实用程序,用于将几个CSV文件从GCS导入BigQuery。我可以通过 轻松实现此目的,但我想使用数据流作业来执行此操作。因此,我正在使用Dataflow的Pipeline和ParDo转换器(返回TableRow以将其应用于BigQueryIO),并且我已经为转换创建了StringToRowConverter()。这里实际问题开始了 - 我被迫为目标表指定架构,尽管我不想在不存在的情况下创建新表 - 只是尝试加载数据。因此,我不想手动设置 TableRow 的列名,因为我有大约 600 列。bq load
public class StringToRowConverter extends DoFn<String, TableRow> {
private static Logger logger = LoggerFactory.getLogger(StringToRowConverter.class);
public void processElement(ProcessContext c) {
TableRow row = new TableRow();
row.set("DO NOT KNOW THE COLUMN NAME", c.element());
c.output(row);
}
}
此外,假设该表已存在于BigQuery数据集中,我不需要创建它,并且CSV文件也以正确的顺序包含列。
如果此方案没有解决方法,并且数据加载需要列名,则可以将其放在 CSV 文件的第一行中。
任何帮助将不胜感激。