我已经使用this tutorial将数据从Bigquery导入pyspark:
table_data = sc.newAPIHadoopRDD(
'com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat',
'org.apache.hadoop.io.LongWritable',
'com.google.gson.JsonObject',
conf=conf)
但是,JsonTextBigQueryInputFormat在处理空字段方面做得不好,因此我想切换到 com.google.cloud.hadoop.io.bigquery.AvroBigQueryInputFormat 。 在这里使用的valueClass是什么?显然不是 com.google.gson.JsonObject ,但我只能在Scala中找到使用 org.apache.avro.generic.GenericData.Record 的示例。 不幸的是,这最终给我带来了错误:
- object not serializable (class: org.apache.avro.generic.GenericData$Record, value: {"member_id": "1234567", "last_event": 1533279838208000})
- field (class: scala.Tuple2, name: _2, type: class java.lang.Object)
- object (class scala.Tuple2, (1,{"member_id": "1234567", "last_event": 1533279838208000}))
- element of array (index: 0)
- array (class [Lscala.Tuple2;, size 1)
任何帮助在pyspark上运行的帮助将不胜感激!