0

Google BigQuery-Hadoop コネクタを使用して、この WordCount の例に従っています。

https://developers.google.com/hadoop/writing-with-bigquery-connector#completecode

この例はそのままで問題なく動作します。

出力スキーマで配列をテストするために、出力スキーマに配列オブジェクト定義を追加して、コードの 1 行だけを変更しました。

String outputTableSchema = "[{'name': 'Word','type': 'STRING'},{'name': 'Number','type': 'INTEGER'},{'name':'Persons','mode':'REPEATED','type':'RECORD','fields':[{'name': 'name','type': 'STRING'},{'name': 'age','type': 'INTEGER'}]}]";

WordCount の例を実行すると、次の例外が発生します。

java.lang.IllegalStateException の com.google.gson.JsonArray.getAsString(JsonArray.java:133) の com.google.cloud.hadoop.io.bigquery.BigQueryUtils.getSchemaFromString(BigQueryUtils.java:97) の com.google. org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.(ReduceTask.java:568) の cloud.hadoop.io.bigquery.BigQueryOutputFormat.getRecordWriter(BigQueryOutputFormat.java:121) org.apache.hadoop.mapred.ReduceTask.runNewReducer の(ReduceTask.java:637) org.apache.hadoop.mapred.ReduceTask.run で (ReduceTask.java:418) org.apache.hadoop.mapred.Child$4.run(Child.java:255) で java.security .AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) at org.apache.hadoop.mapred.Child.main(Child.java:249)

問題が何であるかを知っている人はいますか?

ありがとうございました

4

1 に答える 1

1

これは実際には、BigQuery コネクタの現在のバージョンのバグであり、複数のフィールドを持つ内部レコードをサポートできません。

内部で修正が行われており、次のリリース (0.4.3) で公開される予定ですが、まだ数週間かかる可能性があります。ステージング ビルドの試用にご協力いただける場合は、gcp-hadoop-contact@google.com までお気軽にお問い合わせください。手順をご案内いたします。

于 2014-07-24T01:49:17.100 に答える