基本上,在按照this教程将我的PyCharm设置为Glue ETL dev端点后,我试图解决this问题。
java.io.IOException: File '/var/aws/emr/userData.json' cannot be read
以上文件归hadoop所有。
[[email protected] ~]$ ls -la /var/aws/emr/
total 32
drwxr-xr-x 4 root root 4096 Mar 24 19:35 .
drwxr-xr-x 3 root root 4096 Feb 12 2019 ..
drwxr-xr-x 3 root root 4096 Feb 12 2019 bigtop-deploy
drwxr-xr-x 3 root root 4096 Mar 24 19:35 packages
-rw-r--r-- 1 root root 1713 Feb 12 2019 repoPublicKey.txt
-r--r----- 1 hadoop hadoop 10221 Mar 24 19:34 userData.json
而且我无法按照Eric here的建议更改其许可。我使用我的公钥进入我的dev端点。
ssh -i ~/.ssh/<my_private_key> [email protected]
并且无法将用户更改为hadoop sudo -su hadoop
,因为它要求我提供我不知道root
的[sudo] password for glue:
密码。我也无法使用hadoop用户(而不是root(glue))将其缩进端点,它说权限被拒绝(公钥)。我的问题是……我到底怎么知道dev-endpoint的root用户(胶水)密码?在创建开发端点时,从来没有要求我进行任何设置。或者,我如何通过Hadoop用户进入SSH开发终端?
所以这不是实际的问题。得到了AWS团队的审查,他们说您在通过PyCharm在EMR上运行Spark脚本时会收到这些垃圾警告和错误,但是这不会影响脚本的实际任务。原来是我正在创建的dataFrame;
persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="database", table_name="table")
persons_DyF.printSchema()
执行时没有显示任何模式。而我相当确定我定义了该表模式。它仅输出root
和persons_DyF.count() = 0
。所以我改用pySpark
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df = spark.read.table("ingestion.login_emr_testing")
print(df.printSchema())
df.select(df["feed"], df["timestamp_utc"], df['date'], df['hour']).show()
给我以下结果;
.
.
allot of rubbish errors and warning including `java.io.IOException: File '/var/aws/emr/userData.json' cannot be read`
.
.
+------+--------------------+----------+----+
| feed | timestamp_utc| date|hour|
+------+--------------------+----------+----+
|TWEAKS|19-Mar-2020 18:59...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 18:59...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 18:59...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
|TWEAKS|19-Mar-2020 19:00...|2020-03-19| 19|
+-----+--------------------+----------+----+