Python 如何在VM GCP中安装spark bigquery连接器?

Python 如何在VM GCP中安装spark bigquery连接器?,python,apache-spark,hadoop,google-cloud-platform,google-bigquery,Python,Apache Spark,Hadoop,Google Cloud Platform,Google Bigquery,我在GCP中安装了带有spark的VM映像集群Hadoop,但它不是dataproc。 我可以在不使用dataproc的情况下安装spark bigquery连接器吗? 如果是,我怎么做? 我找到了下载连接器的链接 是的,您可以从GitHub站点下载并安装到spark集群中。或者,您可以将--packages com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0添加到您的spark命令(spark submit/p

我在GCP中安装了带有spark的VM映像集群Hadoop,但它不是dataproc。 我可以在不使用dataproc的情况下安装spark bigquery连接器吗? 如果是,我怎么做? 我找到了下载连接器的链接

是的,您可以从GitHub站点下载并安装到spark集群中。或者,您可以将
--packages com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0
添加到您的spark命令(spark submit/pyspark/spark shell)

编辑

有几个选择:

  • 运行spark应用程序时,请运行
    pyspark--packages com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0
    。同样适用于运行spark submit或spark shell
  • 从下载jar并将其复制到
    /usr/lib/spark/jars/
    目录。通常,这是在集群可用后通过脚本完成的(使用init操作)
  • 在运行时下载JAR,如您所述:

如果我理解正确,您的集群不是本机Dataproc集群。您创建了一组实例(至少一个)并手动安装了Hadoop群集。这个场景更像是在prem上安装Hadoop(使用GCP基础设施);不幸的是,没有指定它是否可以在Dataproc之外使用,但我认为应该这样做,因为连接器是一个jar文件。在本节中,您可以下载最新版本或其他版本,以防其中一个版本不起作用

要在GCP VM实例中安装连接器,需要将其包含在应用程序的java类路径中:

  • 将其包含在已添加到java类路径中的Spark目录中。或者,您可以添加一个新条目(当您的会话在提示符中结束时,此更改将被清除):

    export CLASSPATH=:$CLASSPATH

  • 提交spark应用程序时使用该选项


  • 上述选项将允许您在本地运行spark作业。要将作业提交到Hadoop集群,您应该确保连接器也包含在其类路径中,我建议使用
    Hadoop\u类路径
    。这有更多的细节。

    谢谢David的回复,但是你能解释一下在我从github下载连接器后如何安装它吗?命令行应该是什么?你说的“你可以添加--packages com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0”是什么意思?你的意思是添加以下代码:“从pyspark.sql导入SparkSession spark=SparkSession.builder\.config(“spark.jars.packages”、“com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0”)\.getOrCreate()”我能问一下为什么不使用Dataproc吗?
    from pyspark.sql import SparkSession
    spark = SparkSession.builder \
      .config("spark.jars.packages", "com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.18.0") \
      .getOrCreate()