使用AvroBigQueryInputFormat从Pyspark中的BigQuery读取

时间:2018-08-28 14:49:11

标签: pyspark google-bigquery spark-avro

我已经使用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上运行的帮助将不胜感激!

0 个答案:

没有答案