Как пропустить строку заголовка при загрузке данных CSV в Google BigQuery с помощью клиентской библиотеки (java) - PullRequest
0 голосов
/ 18 марта 2020

При загрузке данных CSV в таблицу больших запросов в веб-интерфейсе пользователя есть опция пропуска строки заголовка / python и др. c. Как пропустить строки csv-файла в BIGQUERY load API Но я не могу найти подобную опцию в Java клиентской библиотеке BigQuery. В настоящее время мой код, как показано ниже

public long writeFileToTable(String datasetName, String tableName, InputStream inStream, String location)
          throws IOException, InterruptedException,TimeoutException {
        // [START bigquery_load_from_file]
        BigQuery bigquery =BigQueryOptions.getDefaultInstance().getService();
        TableId tableId = TableId.of(datasetName, tableName);
        WriteChannelConfiguration writeChannelConfiguration =
            WriteChannelConfiguration.newBuilder(tableId)               
            .setFormatOptions(FormatOptions.csv())

            .build();
        // The location must be specified; other fields can be auto-detected.
        JobId jobId = JobId.newBuilder().setLocation(location).build();
        TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
        // Write data to writer
        try (OutputStream stream = Channels.newOutputStream(writer)) {

          IOUtils.copy(inStream, stream);
        }
        // Get load job
        Job job = writer.getJob();

        job = job.waitFor();

        LoadStatistics stats = job.getStatistics();
        return stats.getOutputRows();
        // [END bigquery_load_from_file]
      }

Но это запись записи заголовка также в таблице. Я предполагал, что какой-то метод должен быть доступен в WriteChannelConfiguration для этого. Но не смог найти ни одного

1 Ответ

0 голосов
/ 18 марта 2020

Извините, я нашел вариант как показано ниже

WriteChannelConfiguration writeChannelConfiguration =
            WriteChannelConfiguration.newBuilder(tableId)               
            .setFormatOptions(CsvOptions.newBuilder().setSkipLeadingRows(1).build())                
            .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...