Python 使用pyspark脚本将表从bigquery加载到spark集群

Python 使用pyspark脚本将表从bigquery加载到spark集群,python,apache-spark,google-bigquery,pyspark,google-cloud-dataproc,Python,Apache Spark,Google Bigquery,Pyspark,Google Cloud Dataproc,我在bigquery中加载了一个数据表,我想通过pyspark.py文件将其导入spark集群 我看到有一种方法可以用scala在spark集群中加载bigquery表,但是有没有一种方法可以在pyspark脚本中实现呢?这来自@MattJ in。下面是一个在Spark中连接到BigQuery并执行单词计数的示例 import json import pyspark sc = pyspark.SparkContext() hadoopConf=sc._jsc.hadoopConfigurati

我在bigquery中加载了一个数据表,我想通过pyspark.py文件将其导入spark集群

我看到有一种方法可以用scala在spark集群中加载bigquery表,但是有没有一种方法可以在pyspark脚本中实现呢?

这来自@MattJ in。下面是一个在Spark中连接到BigQuery并执行单词计数的示例

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”:“莎士比亚”}
tableData=sc.newAPIHadoopRDD(
“com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat”,
“org.apache.hadoop.io.LongWritable”、“com.google.gson.JsonObject”,
map(lambda k:json.load(k[1])).map(lambda x:(x[“word”]),
int(x[“字数”]))。reduceByKey(λx,y:x+y)
打印表格数据。取(10)
您需要更改
以匹配项目的设置