Amazon web services 在AWS EMR Jupyter笔记本中,如何将用户从livy更改为hadoop

Amazon web services 在AWS EMR Jupyter笔记本中,如何将用户从livy更改为hadoop,amazon-web-services,jupyter-notebook,yarn,amazon-emr,livy,Amazon Web Services,Jupyter Notebook,Yarn,Amazon Emr,Livy,我已经创建了一个AWS EMR集群并上传了 sparkify_log_small.json 并创建了一个EMR Jupyter笔记本,下面的代码认为它可以读取用户(hadoop)的主目录 sparkify_log_data = "sparkify_log_small.json" df = spark.read.json(sparkify_log_data) df.persist() df.head(5) 但是当提交代码时,我得到以下错误 'Path does not exist: hdfs:

我已经创建了一个AWS EMR集群并上传了

sparkify_log_small.json
并创建了一个EMR Jupyter笔记本,下面的代码认为它可以读取用户(hadoop)的主目录

sparkify_log_data = "sparkify_log_small.json"
df = spark.read.json(sparkify_log_data)
df.persist()
df.head(5)
但是当提交代码时,我得到以下错误

'Path does not exist: hdfs://ip-172-31-50-58.us-west-2.compute.internal:8020/user/livy/sparkify_log_small.json;'
Traceback (most recent call last):
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 274, in json
    return self._df(self._jreader.json(self._spark._sc._jvm.PythonUtils.toSeq(path)))
  File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 69, in deco
    raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: 'Path does not exist: hdfs://ip-172-31-50-58.us-west-2.compute.internal:8020/user/livy/sparkify_log_small.json;'
从谷歌上得知,默认用户是livy。如何将jupyter笔记本中的用户从livy更改为hadoop(或)指向正确的目录

我尝试创建一个如下的文件夹,并将文件从/home/hadoop/sparkify_log_small.json复制到/home/livy/sparkify_log_small.json

但没有起作用


在这里,我基本上是在尝试从笔记本中读取ec2 master的一个文件。

下面的程序解决了这个问题

检查hadoop文件

hadoop fs -ls
在hadoop文件系统中创建文件夹

hdfs dfs -mkdir /home
hdfs dfs -mkdir /home/hadoop
已将文件复制到该位置

hadoop fs -put ./sparkify_log_small.json /home/hadoop/sparkify_log_small.json
然后在jupyter单元中运行python代码。成功了