AWS胶水HiveContext访问胶水DataCatalog

时间:2020-02-10 16:37:04

标签: amazon-web-services apache-spark aws-glue hivecontext

我可以从带有胶水作业的胶水作业中读取在胶水数据目录中定义的表。 但是,如果我想使用hiveContext读取完全相同的表,则会收到一条错误消息,指出它找不到该表。

我认为HiveContext无法访问胶水数据目录。

您是否知道要在胶水作业配置中插入什么(编辑作业->作业参数->“ --conf xyz”),以确保HiveContext可以在胶水数据目录中查找和访问表?

我想执行以下代码:

# import libs    
from pyspark.context import SparkContext    
from pyspark.sql.functions import *
from pyspark.sql.types import *
from pyspark.sql import HiveContext

# create sparkContext and HiveContext
sc = SparkContext() 
hc = HiveContext(sc)

# read table from glue data catalogue
df = hc.table('glue_db.glue_table').persist()

上面的代码返回以下错误消息:

pyspark.sql.utils.AnalysisException:u“未找到表或视图:glue_dbglue_table ;; \ n'UnresolvedRelation glue_dbglue_table \ n”

我尝试了spark版本spark2.2和spark2.4

非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试一下

from awsglue.context import GlueContext

glueContext = GlueContext(sc)
spark = glueContext.spark_session
df= spark.sql(“select * from glue.table”)

或者直接从创建ur spark会话开始并完全绕过胶水。

只要您选中了允许将胶粘目录用作配置单元metastore的框