pyspark AWS Glue无法访问输入数据集

vxqlmq5t  于 5个月前  发布在  Spark
关注(0)|答案(2)|浏览(65)

我在Glue / Athena中注册了一个数据集,名为my_db.table。我可以通过Athena查询它,一切似乎都很正常。
我尝试在Glue作业中使用此表,但收到以下相当不透明的错误消息:

py4j.protocol.Py4JJavaError: An error occurred while calling o54.getCatalogSource.
: java.lang.Error: No classification or connection in my_db.table

字符串
这似乎表明Glue无法看到我的表的目录条目,或者无法使用该条目中的信息,但我没有比这更进一步的可见性。
有没有人遇到过这个错误,是什么原因导致的?

yrdbyhpb

yrdbyhpb1#

错误消息实际上很好地描述了问题--被查询的表没有分类。
通过Glue创建的表注册为分类-csvparquetorcavrojson。请参阅使用Athena创建AWS Glue作业的表。
我通过Athena“手动”创建的表没有分类。请参阅下面的Glue 'tables'页面的屏幕截图。
x1c 0d1x的数据
解决方案很简单:在CREATE TABLE脚本的末尾,用户必须像这样附加一个classification属性

CREATE EXTERNAL TABLE IF NOT EXISTS my_db.my_table (
  `id` int,
  `description` string 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ',',
  'collection.delim' = 'undefined',
  'mapkey.delim' = 'undefined'
) LOCATION 's3://my_bucket/'
TBLPROPERTIES ('classification'='csv');

字符串
现在,该表在Glue界面中有一个分类,并且可以通过Glue作业访问。

x7rlezfr

x7rlezfr2#

需要在您创建的表中添加分类。要通过UI添加分类,请执行以下步骤:
1.去胶水桌:


的数据
1.点击编辑表格并添加它,如图所示:

相关问题