我一直在使用Google Bigquery Hadoop Connector,看起来在尝试将表的输出保存到json时,生成的json的字段实际上是转换为字符串的数字(Ints或Longs)。
例如,如果我在Bigquery中的表有一列" foo"类型"整数"输出json将是
{"foo":"1234"}
这基本上使任何json解析器读取该字段都有一个字符串而不是int。
我使用以下方法保存文件:
.newAPIHadoopRDD(
hadoopConf,
classOf[GsonBigQueryInputFormat],
classOf[LongWritable],
classOf[JsonObject])
我真的很感激任何帮助,我已经坚持了好几天!
Dennis因为你是该项目的贡献者,也许你可以提供帮助
答案 0 :(得分:0)
除了Mosha在关于JSON没有整数类型的评论中提到的内容之外,在您的情况下,您可能想尝试使用AvroBigQueryInputFormat。 Avro将支持正确的数字类型。唯一的变化是:
import org.apache.avro.generic.GenericData
import com.google.cloud.hadoop.io.bigquery.AvroBigQueryInputFormat
...
// Load data from BigQuery.
val tableData = sc.newAPIHadoopRDD(
conf,
classOf[AvroBigQueryInputFormat],
classOf[LongWritable],
classOf[GenericData.Record]).cache