簡體   English   中英

Google BigQuery:使用具有自定義字段定界符的Java API從本地CSV文件加載數據

[英]Google BigQuery: loading data from a local CSV file using the Java API with custom field delimiter

我正在嘗試使用Java API將本地CSV文件的行加載到BigQuery中。

CSV文件以豎線分隔。

BigQuery的官方文檔提出了以下解決方案,可通過POST請求實現:

TableId tableId = TableId.of(datasetName, tableName);
WriteChannelConfiguration writeChannelConfiguration =
WriteChannelConfiguration.newBuilder(tableId)
    .setFormatOptions(FormatOptions.csv())
    .build();
TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
// Write data to writer
try (OutputStream stream = Channels.newOutputStream(writer)) {
 Files.copy(csvPath, stream);
}
// Get load job
Job job = writer.getJob();
job = job.waitFor();
LoadStatistics stats = job.getStatistics();
return stats.getOutputRows();

僅當CSV是逗號分隔時,此解決方案才有效。

我以為可以用FormatOptions類指定分隔符,但是此類沒有允許這樣做的方法。

有什么建議么?

我終於設法通過用.setFormatOptions(com.google.cloud.bigquery.CsvOptions.newBuilder().setFieldDelimiter("|").build())替換.setFormatOptions(FormatOptions.csv())來解決我的問題.setFormatOptions(com.google.cloud.bigquery.CsvOptions.newBuilder().setFieldDelimiter("|").build())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM