sql - 如何在雅典娜中使用带有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'='-----')
解决方案
The column genre is being interpreted as a string. There are two possible solutions:
select split(genre,',') -- this will give you an array of genres
Or directly create the column as an array by adding a ,
as a collection separator.
推荐阅读
- arrays - 如何将 MongooseSchema 转换为 Angular .ts 文件
- c# - ASP.NET CORE 5 MVC 如何将导航栏链接到视图?
- python - 在 fastapi 中保护端点
- visual-studio-2019 - Visual Studio 2022 项目属性中的代码分析在哪里
- reactjs - 创建 React 组件而不渲染它们
- recursion - 我使用 dislousreGroup 作为递归,但视图更新无法正常工作。有什么办法吗?
- reactjs - 通过单击更改表中的值
- javascript - 如何在选择标签中显示所选选项的附加数据
- google-chrome - 独立于全局系统设置的 Chrome 深色/浅色主题
- sql - SQL Partition by with 条件