微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在athena中使用sqlite用tsv文件对列进行行格式化

如何解决如何在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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?