jjzjj

sql - 在 Hive SQL 中,使用分区键基于另一个表中的列创建表

我想根据现有表中的列创建一个新表,在配置单元中添加一个新的分区列。我想在hivesql中实现这个目标。除了下面的sql或者使用kettle之类的ETL工具还有没有别的办法createtableifnotexiststable_name(col1,col2,col3,……,coln)partitionedbydt;其中col1到coln来自已经存在的旧表,dt是新添加的partitionkey。因为旧表太大,可能有几百列,罗列出来会很累。但是,下面的sql显示语法错误:createtableifnotexiststable_namelikeolder_table_namepartitio

mysql - Sqoop 导出不支持 --columns 参数

我有一个sqoop作业,我只想将HIVE表中的3列导出到只有这3个字段的mysql表中。export--connect--username--password--tabletarget--columns"col1,col2,col3"--export-dir/path/to/source/table请注意,在hive表中,col1、col2、col3之间有一些字段。抛出的错误是IllegalArgumentException,因为Sqoop正在解析hive表中col1和col2之间的字符串字段,我明确试图忽略它,并试图将其存储为时间戳.如有任何建议,我们将不胜感激!

hadoop - 如何删除 Hive 中的两个分区列之一?

我创建了一个包含两个分区列的配置单元表,例如col1和col2,现在出于某些分析目的,我希望删除col2分区。基本上我希望从分区列列表中删除列-col2,但我不应该丢失col2中的数据。很明显,最终表应仅由col1分区,而col2也应存在于最终分区表中,但作为普通列而不是分区列。请提出前进的方向。 最佳答案 下面是最好的方法之一。只需更新配置单元分区:ALTERTABLEPARTITION(year=2018,month=05)SETLOCATION'hdfs://some/temp/location/tale_name/2018/

hadoop - Hive 外部表的最大列数

我正在尝试在Amazon的EMR上设置Hive,以从DynamoDB表中提取数据并将其转储到S3。我已按照找到的说明进行操作here,并在我们的大多数table上取得了成功。然而,对于一个DynamoDB表,我收到一个错误(如下所示)。有问题的表有很多列(>100),将映射减少到它们的一个子集允许脚本运行,所以我假设这是问题,但我找不到关于此的任何文档。我可以定义的列数是否有某种硬性限制?还是我可能会在这里遇到其他限制?有办法解决这个问题吗?我得到的错误看起来像:FAILED:Errorinmetadata:javax.jdo.JDODataStoreException:Putrequ

hadoop - 从一个部分文件中 Sqoop 到两个表( pig 输出)

我有一个场景,我需要使用Pig加载数据并存储到hdfs中,这个结果(pig输出/部分文件数据)应该加载到两个mysql中的表使用Sqoop。Sqoop可以做到吗?任何其他解决方案。例如如果我有这样一个文件col1col2col3col4................................................Iwanttoexportcol1,col2totabletable1andcol3,col4totabletable2ofsomedatabase提前致谢。 最佳答案 我在下面的解决方案中使用了MySQL

csv - 将 csv 文件的全部内容加载到 Hive 表中的单个列中

在Hive相关问题上需要一些帮助。我正在尝试将整个csv文件加载到单列Hive表中。文件中的每个条目都应该是Hive表中的一行。我试图更改ROWFORMAT-特别是尝试更改为LINESTERMINATEDBY','而不是'\n'。但是,目前仅支持'\n'字符。目前这是一个JIRA问题(https://issues.apache.org/jira/browse/HIVE-11996)。我目前唯一的想法是通过linux命令用\n替换文件中的逗号,但是我想看看是否有人可以提出一些其他值得考虑的解决方案。提前致谢! 最佳答案 您可以在Hiv

sql - Hive 相对于同一表中的其他数组列对数组列进行排序

我在hive中有一个表,其中2列为col1array和col2array.输出如下图col1col2[1,2,3,4,5][0.43,0.01,0.45,0.22,0.001]我想按升序对col2进行排序,并且col1也应该相应地更改其索引,例如col1col2[5,2,4,3,1][0.001,0.01,0.22,0.43,0.45] 最佳答案 分解两个数组,排序,然后再次聚合数组。在collect_list之前的子查询中使用sort对数组进行排序:withyour_dataas(selectarray(1,2,3,4,5)asc

hadoop - 检查两个表是否相等

我有两个结构相同的表。如何检查这两个中的所有行是否相等?即第一个表中的每一行都存在于另一个表中,反之亦然。 最佳答案 Jeff博客中的解决方案与Hive相关:http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx."Thebasicideais:ifweGROUPtheunionoftwotablesonallcolumns,thenifthetwotablesareidenticalallgroupswillresultinaCOUNT(*)of2.Butfora

sql - 如何在 HIVE 中使用 "in"和 "having"子句?

我的数据是这样的:col1col2col3AB3AB1AB2CB1我想获取所有包含col3某些行的col1和col2的唯一组。比如,所有包含“2”的col1和col2组。我想做这样的事情:selectcol1,col2fromsometablegroupbycol1,col2havingcol3=1andcol3=2但我希望它只返回在col3中同时具有1和2实例的组。所以,查询后的结果应该是这样的:col1col2AB我如何在HIVE中表达它?谢谢。 最佳答案 我不知道为什么其他人删除了正确然后几乎正确的答案,但我会备份他们的答案。

hadoop - Hive - 在多行上拆分分隔列,根据位置选择

我正在寻找一种基于逗号分隔数据拆分列的方法。下面是我的数据集idcol1col215,67,8我要得到结果idcol1col2157168索引的位置应该匹配,因为我需要相应地获取结果。我尝试了以下查询,但它返回了笛卡尔积。查询:SELECTcol3,col4FROMtestextlateralVIEWexplode(split(col1,'\002'))col1AScol3lateralVIEWexplode(split(col2,'\002'))col2AScol4结果:idcol1col2157158167168 最佳答案 您可