0
Google Bigquery Hadoop Connectorを使用していて、テーブルの出力をjsonに保存しようとすると、結果として得られるjsonには実際に数字(IntsまたはLong)が文字列に変換されたフィールドがあります。 BigQueryの中に私のテーブルには、タイプ「整数」の1列「foo」を持っている場合GsonBigQueryInputFormatは文字列としてintsを保存します
例えば、出力JSONは
{"foo":"1234"}
は、これは基本的に任意のJSONパーサーは、そのフィールドではなく、int型の文字列を持って読んで作るだろう。
私が使用してファイルを保存しています:
.newAPIHadoopRDD(
hadoopConf,
classOf[GsonBigQueryInputFormat],
classOf[LongWritable],
classOf[JsonObject])
すべてのヘルプは本当にこの上でいただければ幸い、私は数日のためにそれに引っかかってきました!プロジェクトのあなたの貢献以来
Dennis、おそらくあなたはMoshaは整数型を持っていないJSONに関するコメントで述べたものの上に
これは、JSONには整数型がないため、浮動小数点型として実装されている数値型のみであるため、BQ整数をJSON数値に変換すると精度が低下するからだと思います。それを文字列に変換しても精度は低下しませんが、整数に変換するアプリケーションが必要です。 –
ありがとう@MoshaPasumanskyので、汎用のJSON文字列を取り込み、integer/double/floatに変換するメソッドを実装する必要がありますか? –
はい、このメソッドは、精度が損なわれることなく、JSON数値にファーリングするのに整数が十分小さい場合にのみ機能します。 –