簡體   English   中英

在apache spark中組合來自不同來源的數據

[英]combining data from different sources in apache spark

我正在探索一個項目的 apache spark,我想從不同的來源獲取數據 - 數據庫表(postgres 和 BigQuery)和文本。 數據將被處理並送入另一個表進行分析。 我選擇的編程語言是 Java,但我也在探索 Python。有人可以告訴我是否可以直接將其讀入 Spark 進行處理嗎? 我是否需要在數據庫表和 Spark 集群之間使用某種連接器。

提前致謝。

例如,如果您想從 BigQuery 表中讀取內容,您可以通過以下說明(例如 Python)來完成:

words = spark.read.format('bigquery') \
   .option('table', 'bigquery-public-data:samples.shakespeare') \
   .load()

你可以參考這個文檔[1](在這里你也可以看到Scala的說明)。

***我建議先嘗試wordcount代碼以習慣使用模式 ****

之后,您准備好 Spark 代碼,您必須在Google Dataproc [2] 中創建一個新集群並在那里運行作業,鏈接 BigQuery 連接器(使用 python 的示例):

gcloud dataproc jobs submit pyspark wordcount.py \
   --cluster cluster-name \
   --region cluster-region (example: "us-central1") \
   --jars=gs://spark-lib/bigquery/spark-bigquery-latest.jar

您可以在此處找到最新版本的 BigQuery 連接器 [3]。

此外,在此 GitHub 存儲庫中,您可以找到一些有關如何將 BigQuery 連接器與 Spark [4] 結合使用的示例。

通過這些說明,您應該能夠處理讀取和寫入 BigQuery。

[1] https://cloud.google.com/dataproc/docs/tutorials/bigquery-connector-spark-example#running_the_code

[2] https://cloud.google.com/dataproc/docs/guides/create-cluster

[3] gs://spark-lib/bigquery/spark-bigquery-latest.jar

[4]https://github.com/GoogleCloudDataproc/spark-bigquery-connector

您可以使用 jdbc 連接到 rdbms。 Spark 也有用於 BigQuery 的連接器。 將所有源分別讀入數據幀,最后合並(假設所有數據格式相同)

pyspark 的示例偽代碼:

df1=spark.read.json("s3://test.json") df2 = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://xxxx").option( "driver", "com.mysql.jdbc.Driver").option("table", "name").option("user", "user").option("password", "password").load( )

結果 = df1.union(df2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM