我在配置单元中有一个使用 hive-json-serde 方法从许多 json 文件创建的表,WITH SERDEPROPERTIES ('dots.in.keys' = 'true'),因为其中一些键有一个点,比如 `aaa.bbb` . 我创建外部表并为这些键使用反引号。现在我从 pyspark 脚本中删除此表时遇到问题,使用sqlContext.sql("DROP TABLE IF EXISTS "+table_name)
,我收到此错误消息:
An error occurred while calling o63.sql.
: org.apache.spark.SparkException: Cannot recognize hive type string: struct<associations:struct<aaa.bbb:array<string> ...
Caused by: org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input '.' expecting ':'(line 1, pos 33)
== SQL ==
struct<associations:struct<aaa.bbb:array<string>,...
---------------------------------^^^
在 HUE 中,我可以毫无问题地删除此表。我做错了吗,或者可能有更好的方法吗?