Apache spark 通过Hadoop输入格式示例实现pyspark的BigQuery连接器

Apache spark 通过Hadoop输入格式示例实现pyspark的BigQuery连接器,apache-spark,google-bigquery,pyspark,google-hadoop,google-cloud-dataproc,Apache Spark,Google Bigquery,Pyspark,Google Hadoop,Google Cloud Dataproc,我将一个大型数据集存储在一个BigQuery表中,我希望将其加载到pypark RDD中,以便进行ETL数据处理 我意识到BigQuery支持Hadoop输入/输出格式 pyspark应该能够使用这个接口,以便通过使用“newAPIHadoopRDD”方法创建RDD 不幸的是,两端的文档似乎很少,超出了我对Hadoop/Spark/BigQuery的了解。有人知道怎么做吗?谷歌现在有了一个关于如何使用Spark的BigQuery连接器的解决方案 使用GsonBigQueryInputForm

我将一个大型数据集存储在一个BigQuery表中,我希望将其加载到pypark RDD中,以便进行ETL数据处理

我意识到BigQuery支持Hadoop输入/输出格式

pyspark应该能够使用这个接口,以便通过使用“newAPIHadoopRDD”方法创建RDD

不幸的是,两端的文档似乎很少,超出了我对Hadoop/Spark/BigQuery的了解。有人知道怎么做吗?

谷歌现在有了一个关于如何使用Spark的BigQuery连接器的解决方案

使用GsonBigQueryInputFormat似乎确实有问题,但我得到了一个简单的莎士比亚单词计数示例

import json
import pyspark
sc = pyspark.SparkContext()

hadoopConf=sc._jsc.hadoopConfiguration()
hadoopConf.get("fs.gs.system.bucket")

conf = {"mapred.bq.project.id": "<project_id>", "mapred.bq.gcs.bucket": "<bucket>", "mapred.bq.input.project.id": "publicdata", "mapred.bq.input.dataset.id":"samples", "mapred.bq.input.table.id": "shakespeare"  }

tableData = sc.newAPIHadoopRDD("com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat", "org.apache.hadoop.io.LongWritable", "com.google.gson.JsonObject", conf=conf).map(lambda k: json.loads(k[1])).map(lambda x: (x["word"], int(x["word_count"]))).reduceByKey(lambda x,y: x+y)
print tableData.take(10)
导入json
进口Pypark
sc=pyspark.SparkContext()
hadoopConf=sc.\u jsc.hadoopConfiguration()
hadoopConf.get(“fs.gs.system.bucket”)
conf={“mapred.bq.project.id”:“mapred.bq.gcs.bucket”:“mapred.bq.input.project.id”:“publicdata”,“mapred.bq.input.dataset.id”:“samples”,“mapred.bq.input.table.id”:“shakespeare”}
tableData=sc.newAPIHadoopRDD(“com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat”、“org.apache.hadoop.io.LongWritable”、“com.google.gson.JsonObject”、“conf=conf”).map(lambda k:json.loads(k[1]).map(lambda x:“word”]、int(x[“word\u count”])).reduceByKey(lambda x,y:x+y)
打印表格数据。取(10)

你好,是的。事实上,我自己已经明白了。然而,他们只发布了scala的连接器。我将在有时间的情况下使用pyspark解决方案。