2016-02-12 53 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

相關問題