首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改表列名称拼接格式Hadoop

更改表列名称拼接格式Hadoop
EN

Stack Overflow用户
提问于 2019-03-25 01:51:47
回答 3查看 715关注 0票数 1

我有一个包含a,b,c列的表。数据存储在hdfs上,是不是可以更改特定的列名,即使拼图已经写上了a,b,c的模式?

EN

回答 3

Stack Overflow用户

发布于 2020-06-03 21:46:55

在循环中读取文件使用更改的列名创建新的df在另一个目录中的追加模式下写入新的df将这个新的目录移动到读取目录

cmd=['hdfs', 'dfs', '-ls', OutDir]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
for i in process.communicate():
 if i:
    for j in i.decode('utf-8').strip().split():
       if j.endswith('snappy.parquet'):
          print('reading file ',j)
          mydf  = spark.read.format("parquet").option("inferSchema","true")\
          .option("header", "true")\
          .load(j)
          print('df built on bad file ')
          mydf.createOrReplaceTempView("dtl_rev")
          ssql="""select old-name AS new_name,
          old_col AS new_col from dtl_rev"""
          newdf=spark.sql(ssql)
          print('df built on renamed file ')
          aggdf.write.format("parquet").mode("append").save(newdir)
票数 1
EN

Stack Overflow用户

发布于 2019-03-25 03:10:54

尝试使用,ALTER TABLE

desc p;

+-------------------------+------------+----------+--+
|        col_name         | data_type  | comment  |
+-------------------------+------------+----------+--+
| category_id             | int        |          |
| category_department_id  | int        |          |
| category_name           | string     |          |
+-------------------------+------------+----------+--+

alter table p change column category_id id int

desc p;
+-------------------------+------------+----------+--+
|        col_name         | data_type  | comment  |
+-------------------------+------------+----------+--+
| id                      | int        |          |
| category_department_id  | int        |          |
| category_name           | string     |          |
+-------------------------+------------+----------+--+
票数 0
EN

Stack Overflow用户

发布于 2020-09-25 10:10:39

我们不能重命名现有文件中的列名,parquet将方案存储在数据文件中,我们可以使用以下命令parquet-tools schema part-m-00000.parket检查方案

我们必须将备份放到临时表中,并重新摄取历史数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55326744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档