2016-02-12 52 views
0

执行下面的代码后,我得到下面的错误。我在安装中丢失了什么?我正在使用安装在我的本地mac上的spark,所以我正在检查是否需要为下面的代码安装额外的库以从bigquery中运行和加载数据。无法使用pyspark在本地火花(在我的mac上)加载bigquery数据

Py4JJavaError        Traceback (most recent call last) 
<ipython-input-8-9d6701949cac> in <module>() 
    13  "com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat", 
    14  "org.apache.hadoop.io.LongWritable", "com.google.gson.JsonObject", 
---> 15  conf=conf).map(lambda k: json.loads(k[1])).map(lambda x: (x["word"], 

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD. 
: java.lang.ClassNotFoundException: com.google.gson.JsonObject 
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) 

回答

1

错误 “抛出java.lang.ClassNotFoundException:com.google.gson.JsonObject” 似乎暗示,图书馆丢失。

请尝试添加GSON罐子到您的路径:http://search.maven.org/#artifactdetails|com.google.code.gson|gson|2.6.1|jar

+0

费利佩的感谢!我现在正在收到另一个错误 - Py4JJavaError:调用z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD时发生错误。 :java.lang.ClassNotFoundException:com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat 这又是一个缺少jar的问题吗? – VP10

+0

是的,您现在缺少BigQuery连接器:https://cloud.google.com/hadoop/bigquery-connector –

+0

是的,谢谢我下载了!获得另一个错误如下。你知道我应该如何在我的代码中传递bigquery帐户凭证吗?我运行附加的代码(在我的主要问题)。 Py4JJavaError:调用z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD时发生错误。 :java.io.IOException:从元数据服务器获取访问令牌时出错:http:// metadata/computeMetadata/v1/instance/service-accounts/default/token – VP10

相关问题