![](/img/trans.png)
[英]loading data file with 3 spaces as delimiter using Sparks csv reader in java
[英]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.