【问题标题】:creation of a cluster on google cloud在谷歌云上创建集群
【发布时间】:2018-12-03 15:41:37
【问题描述】:

我不得不使用谷歌云集群分析数据集。 我在谷歌云平台上创建了一个存储桶,并创建了一个计算机集群,我将我想要分析的数据移到了存储桶中(我亲自检查了它是否存在)。 我现在必须为我的集群创建一个 ssh 隧道,我通过运行以下代码来做到这一点:

%%bash    
#!/bin/bash
NODE="cluster-west1b-m"
ZONE="europe-west1-b"
PORT=8080
PROJ="myfirstproject09112018"   

gcloud compute ssh $NODE \
--project=$PROJ \
--zone=$ZONE -- -fN -L $PORT:localhost:$PORT 

完成此操作后,我去了 localhost:8080,在这里我打开了一个 python 笔记本,并导入了一些 spark 库:

from pyspark.sql import functions as F
from pyspark.sql import types as T
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
sc = spark.sparkContext

然后我想读取我的文件,因此我尝试运行:

natality = spark.read.csv('gs://storage-eu-west-luchino/natality/natality*.csv',header=True,inferSchema=True)

但是它告诉我他找不到文件,但是文件在桶里所以我不明白问题出在哪里,错误基本上是这个:

Py4JJavaError: An error occurred while calling o61.csv.
: java.io.IOException: No FileSystem for scheme: gs

有人知道为什么这不起作用吗? 我实在想不通问题

【问题讨论】:

    标签: python-3.x ssh google-cloud-platform apache-spark-sql cluster-computing


    【解决方案1】:

    Spark 不理解开箱即用的gs:// 协议,因此出现此错误:

    没有用于方案的文件系统:gs

    相反,您可以执行以下任何操作:

    【讨论】:

    • 我没有完全理解,我试图在我的集群的 Jupiter notebook 中导入 blob 库,我从该集群中连接了一个 ssh 隧道,但是给出了一个错误,说 google.cloud库没有安装,你会建议直接使用 spark 而不是 python?而且加密密钥是我必须创建的,或者是我可以从谷歌云平台检索的东西?
    • 是的,您需要安装 google-cloud-storage 软件包。请参阅this link,获取有关如何设置存储桶身份验证的指南。
    • 感谢它现在可以工作了!原始代码不起作用的事实可能是因为我使用的是 Mac 书吗?因为原始代码来自我的数据库教授,并且在他的 PC 上运行良好,或者只是他省略了他可能在他的 PC 上的包的部分代码而我没有?
    • 看起来可以安装第三方连接器,以便 Spark 可以处理 GCS 文件。我已经更新了我的问题,另请参阅 https://stackoverflow.com/q/46659757https://stackoverflow.com/q/27782844
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多