如何解决如何在athena中使用sqlite用tsv文件对列进行行格式化
所以我想将这些从 tsv 文件添加到 athena 中的表中,除了最后一列类型之外,我可以这样做。我的意思是我可以添加它,但我希望它像 ["Comedy","Mystery"] 一样,但它显示为 [Comedy,Mystery] 这使得无法以任何方式访问它们
tconst genres
tt0081313 Action
tt0081315 Comedy,Mystery
tt0081349 Comedy,Crime
这就是我所做的:
CREATE EXTERNAL TABLE `title_basics`(
`tconst` string,`genres` Array<string>)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim' = '\t' # This is for separating them by tab which is right but how can I also
# add the genres the way I want them to the table
)
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeytextoutputFormat'
LOCATION
'mylocation'
TBLPROPERTIES (
'has_encrypted_data'='false','transient_lastDdlTime'='-----')
解决方法
列类型被解释为字符串。有两种可能的解决方案:
select split(genre,',') -- this will give you an array of genres
或者通过添加 ,
作为集合分隔符直接将列创建为数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。