gpt4 book ai didi

google-bigquery - Dataproc + BigQuery示例-是否可用?

转载 作者:行者123 更新时间:2023-12-03 22:09:02 27 4
gpt4 key购买 nike

根据Dataproc docos,它具有“与BigQuery的本地和自动集成”。

我在BigQuery中有一张 table 。我想读取该表并使用我创建的Dataproc集群对其进行一些分析(使用PySpark作业)。然后,将分析结果写回到BigQuery。您可能会问:“为什么不直接在BigQuery中进行分析!?” -原因是因为我们正在创建复杂的统计模型,而SQL对于开发它们来说太高了。我们需要类似Python或R,ergo Dataproc的工具。

他们有可用的Dataproc + BigQuery示例吗?我找不到。

最佳答案

首先,如this question中所述,BigQuery连接器已预安装在Cloud Dataproc集群上。

这是有关如何将BigQuery中的数据读取到Spark中的示例。在此示例中,我们将从BigQuery读取数据以执行字数统计。
您可以使用SparkContext.newAPIHadoopRDD从Spark中的BigQuery读取数据。 Spark documentation具有有关使用SparkContext.newAPIHadoopRDD的更多信息。 '

import com.google.cloud.hadoop.io.bigquery.BigQueryConfiguration
import com.google.cloud.hadoop.io.bigquery.GsonBigQueryInputFormat
import com.google.cloud.hadoop.io.bigquery.mapred.BigQueryMapredInputFormat
import com.google.gson.JsonObject

import org.apache.hadoop.io.LongWritable

val projectId = "<your-project-id>"
val fullyQualifiedInputTableId = "publicdata:samples.shakespeare"
val fullyQualifiedOutputTableId = "<your-fully-qualified-table-id>"
val outputTableSchema =
"[{'name': 'Word','type': 'STRING'},{'name': 'Count','type': 'INTEGER'}]"
val jobName = "wordcount"

val conf = sc.hadoopConfiguration

// Set the job-level projectId.
conf.set(BigQueryConfiguration.PROJECT_ID_KEY, projectId)

// Use the systemBucket for temporary BigQuery export data used by the InputFormat.
val systemBucket = conf.get("fs.gs.system.bucket")
conf.set(BigQueryConfiguration.GCS_BUCKET_KEY, systemBucket)

// Configure input and output for BigQuery access.
BigQueryConfiguration.configureBigQueryInput(conf, fullyQualifiedInputTableId)
BigQueryConfiguration.configureBigQueryOutput(conf,
fullyQualifiedOutputTableId, outputTableSchema)

val fieldName = "word"

val tableData = sc.newAPIHadoopRDD(conf,
classOf[GsonBigQueryInputFormat], classOf[LongWritable], classOf[JsonObject])
tableData.cache()
tableData.count()
tableData.map(entry => (entry._1.toString(),entry._2.toString())).take(10)

您将需要使用设置来自定义此示例,包括 <your-project-id>中的Cloud Platform项目ID和 <your-fully-qualified-table-id>中的输出表ID。

最后,如果最终将BigQuery连接器与MapReduce结合使用, this page提供了有关如何使用BigQuery连接器编写MapReduce作业的示例。

关于google-bigquery - Dataproc + BigQuery示例-是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com