mysql - 添加到 mysql 的新列在 Hive 中反射(reflect)相同

标签 mysql hive sqoop

今天我在 mysql 中有一个 4 列 3 行的表。我已将该数据直接导入为配置单元表。

表测试:

id name sal loc
1  sam  123 hyd
2  ram  234 teb
3  red  456 qer

现在我想向现有 mysql 表添加一个新列,并添加一个包含所有 5 列值的新行。新列的值 之前的行将为空。

表测试:

id name sal loc zip
1  sam  123 hyd null
2  ram  234 teb null
3  red  456 qer null
4  Tim  567 CA  1245

当我们执行 sqoop 增量追加时,我仅获取旧列的值,并且新行也会显示,但仅适用于旧列。

增量追加后的 hive 表。

id name sal loc
1  sam  123 hyd
2  ram  234 teb
3  red  456 qer
4  Tim  567 CA

现在我希望 hive 表与 mysql 表完全相同

我们可以在运行 sqoop 增量追加时更新 Hive 表吗?如果是的话

我们怎样才能做到这一点?

如果没有,最适合我的用例的解决方案是什么

最佳答案

当您的 ddl 更改使用以下步骤时,没有状态转发解决方案。

1 您必须删除 hive 表并从以下位置“hive.metastore.warehouse.dir/table”删除 hdfs 中的数据。

2 您可以直接从 Sqoop 导入并按照下面的选项再次创建表。

--create-hive-table 

关于mysql - 添加到 mysql 的新列在 Hive 中反射(reflect)相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636792/

相关文章:

php - 这是将密码存储在数据库中并激活用户帐户的正确方法吗?

hadoop - 如何将外部查询结果与Hive中的另一个表保持外部联接

mysql - 使用 Hive 查询 Sqoop 到 MySQL

hadoop - 我如何指向 Sqoop 以使用 TAB 作为分隔符?

sql - sqoop导入其中包含 “,”的数据集的字符串列

mysql - 在 MySQL 表之间将 string/varchar 转换为日期

mysql 查询在 groupby 中包含零计数

mysql - 一种仅保留和更新 TYPE=3 行的方法

java - Hive 无法初始化类 java.net.NetworkInterface

hadoop - Sqoop:如何从配置单元联合导出表