Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 为什么可以';我的GCP脚本/笔记本找不到我的文件?_Google Cloud Platform_Pyspark - Fatal编程技术网

Google cloud platform 为什么可以';我的GCP脚本/笔记本找不到我的文件?

Google cloud platform 为什么可以';我的GCP脚本/笔记本找不到我的文件?,google-cloud-platform,pyspark,Google Cloud Platform,Pyspark,我有一个工作脚本,它可以在数据文件与脚本位于同一目录时查找数据文件。这在我的本地机器和Google Colab上都有效 当我在GCP上尝试时,虽然它找不到文件。我尝试了3种方法: Pypark笔记本: 上载包含wget命令的.ipynb文件。这会无误地下载文件,但我不确定文件保存到何处,脚本也找不到文件(我假设是因为我告诉它文件位于同一目录中,并在默认情况下使用GCP上的wget将其保存到其他位置。) 带铲斗的Pypark: 我的操作与上面的PySpark笔记本相同,但首先我将数据集上传到buc

我有一个工作脚本,它可以在数据文件与脚本位于同一目录时查找数据文件。这在我的本地机器和Google Colab上都有效

当我在GCP上尝试时,虽然它找不到文件。我尝试了3种方法:

Pypark笔记本:

  • 上载包含wget命令的.ipynb文件。这会无误地下载文件,但我不确定文件保存到何处,脚本也找不到文件(我假设是因为我告诉它文件位于同一目录中,并在默认情况下使用GCP上的wget将其保存到其他位置。)
  • 带铲斗的Pypark:

  • 我的操作与上面的PySpark笔记本相同,但首先我将数据集上传到bucket,然后在控制台上单击bucket中的文件名时使用文件详细信息中提供的两个链接(两者都不起作用)。我想避免这种情况,因为wget的速度要快得多,然后通过我的慢速wifi下载,然后通过控制台重新加载到bucket
  • GCP SSH:

  • 创建集群
  • 通过SSH访问虚拟机
  • 使用cog图标上载.py文件
  • wget数据集并将两者移动到同一文件夹中
  • 使用python gcp.py运行脚本
  • 只是给我一个错误,说找不到文件


    谢谢。

    根据您的第一种和第三种方法,如果您在Dataproc上运行PySpark代码,无论您使用的是.ipynb文件还是.py文件,请注意以下几点:

    如果使用“wget”命令下载该文件,则该文件将下载到执行代码的当前工作目录中

    当您尝试通过PySpark代码访问该文件时,它将在HDFS中默认检查。如果要从当前工作目录访问下载的文件,请使用具有绝对文件路径的“file://”URI

    如果要从HDFS访问文件,则必须将下载的文件移动到HDFS,然后使用绝对HDFS文件路径从那里访问。请参考以下示例:

    hadoop fs -put <local file_name> </HDFS/path/to/directory>
    
    hadoop fs-put
    非常感谢。我的GCP大学代金券现在已经用完了,所以我不确定什么时候我会再次使用它来测试你的解决方案,但如果我真的这样做了并且它有效,我会回来并将它标记为已回答。