Apache spark PySpark访问glue数据目录

Apache spark PySpark访问glue数据目录,apache-spark,pyspark,aws-glue,Apache Spark,Pyspark,Aws Glue,我在EMR上使用Hue/Zeppelin中的pySpark访问Glue数据目录中的表时遇到问题。我已经试过emr-5.13.0和emr-5.12.1 我试着跟着 但是当尝试导入GlueContext时,它会出错,说没有名为awsglue.context的模块。 另一个注意事项是,当执行spark.sql(“SHOW TABLES”).SHOW()时,Hue/Zeppelin的结果是空的,但是当在主节点上使用pyspark shell时,我能够从Glue数据目录中查看和查询表 非常感谢您的帮助,谢

我在EMR上使用Hue/Zeppelin中的pySpark访问Glue数据目录中的表时遇到问题。我已经试过emr-5.13.0和emr-5.12.1

我试着跟着 但是当尝试导入GlueContext时,它会出错,说
没有名为awsglue.context的模块。

另一个注意事项是,当执行
spark.sql(“SHOW TABLES”).SHOW()
时,Hue/Zeppelin的结果是空的,但是当在主节点上使用pyspark shell时,我能够从Glue数据目录中查看和查询表


非常感谢您的帮助,谢谢

请查看AWS此链接中的详细信息,并查看EMR是否按照建议正确配置()。还要确保授予访问AWS Glue目录的适当权限。详细信息见所附链接。希望这有帮助。

好的,我花了一些时间来模拟这个问题,所以我启动了一个EMR,启用了“使用AWS Glue Data Catalog for table metadata”。启用web连接后,在齐柏林飞艇中,我发出了一个show databases命令,它运行良好。请查看齐柏林飞艇的命令和输出:

%spark
spark.sql("show databases").show

+-------------------+
|airlines-historical|
|            default|
|      glue-poc-tpch|
|     legislator-new|
|        legislators|
|      nursinghomedb|
| nycitytaxianalysis|
| ohare-airport-2006|
|           payments|
|              s100g|
|                s1g|
|           sampledb|
|             testdb|
|               tpch|
|           tpch_orc|
|       tpch_parquet|
+-------------------+
至于你的另一期“没有名为awsglue.context的模块”,我认为这可能是不可能的。我认为访问/使用awsglue.context的唯一方法是通过可能需要在AWS Glue中设置的Glue-Devendpoint,然后使用Glue jupyter笔记本或连接到Glue-development端点的本地安装齐柏林飞艇笔记本

我不确定是否可以从EMR委托的齐柏林飞艇笔记本直接访问glue上下文,可能我错了

您仍然可以访问glue目录,因为EMR为您提供了相同的选项,因此您可以访问数据库并执行ETL工作


谢谢。

另外,EMR的胶水支持似乎可以从EMR-5.8.0或更高版本获得。这可能是它失败的原因之一,我建议您尝试使用5.8.0,并按照链接进行所有配置。谢谢。我在设置集群时遵循了这一点,我检查了Hive和Spark以使用Glue作为它们的元存储。我还检查了配置设置,以确保设置正确。至于emr的版本,我尝试过的两个版本是比5.8.0(5.13.0和5.12.1)更新得多的最新版本,完全奇怪,我刚刚在齐柏林飞艇上又做了一次尝试,这次我能够查询胶水数据目录:)。谢谢你的信息!很高兴,它现在正在重新尝试工作,您是否尝试在EMR齐柏林飞艇中获取粘合上下文对象?它是开箱即用的吗?请更新我正在使用Glue Dev endpoint并在本地计算机上安装了齐柏林飞艇,我可以从scala和python api访问Glue目录,但不能使用%sql或spark.sql()两者都只返回默认数据库。。有什么帮助吗?