簡體   English   中英

如何查找由於 apache beam java sdk 中的錯誤而被拒絕的文件

[英]How to find rejected files due to errors in apache beam java sdk

我有N個相同類型的文件要處理,我將給出一個通配符輸入模式( C:\\users\\*\\* )。 那么現在我如何找到在java中上傳到bigquery時被拒絕的文件名和記錄。

我猜 BQ 會寫入您傳遞給管道而不是本地的臨時位置路徑 [老實說,對此不確定]。

在我的情況下,使用 python,我曾經將 tmp 位置作為 GCS 存儲桶傳遞,當我顯示錯誤時,它們通常會在命令行日志中顯示包含被拒絕錯誤的日志文件的名稱。

然后我使用gsutil cp命令將它復制到我的本地計算機並讀取它

BigQuery I/O(Java 和 Python SDK)支持死信模式: https ://beam.apache.org/documentation/patterns/bigqueryio/。

爪哇

result
      .getFailedInsertsWithErr()
      .apply(
          MapElements.into(TypeDescriptors.strings())
              .via(
                  x -> {
                    System.out.println(" The table was " + x.getTable());
                    System.out.println(" The row was " + x.getRow());
                    System.out.println(" The error was " + x.getError());
                    return "";
                  }));

Python

errors = (
  result['FailedRows']
  | 'PrintErrors' >>
  beam.FlatMap(lambda err: print("Error Found {}".format(err))))

暫無
暫無

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

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