草庐IT

test_hive

全部标签

hadoop - hive 中的 Select 语句返回一些具有空值的列

我看到很多人问过这种类型的问题,但这些解决方案对我不起作用。我创建了一个外部配置单元表,因为我的数据来自仅限map的作业输出。然后,通过加载命令我给出了特定文件的路径。它显示正常。但是当我给出select*fromtable命令时,它会返回一些具有空值的列。我执行的每个命令都在错误图片中。我在文件中的分隔符是||,所以我在创建表命令中也提到了同样的内容。这是我的输入文件图片filepic.这是errorpic.我也尝试过普通表而不是外部表。那也显示了同样的错误。我还尝试将定界符称为//||和\|\|。但没有一个奏效。 最佳答案 您面

hadoop - 如何在写入 hive orc 表时合并 spark 中的小文件

我正在从s3读取csv文件并作为orc写入配置单元表。在写入时,它正在写入很多小文件。我需要合并所有这些文件。我设置了以下属性:spark.sql("SEThive.merge.sparkfiles=true")spark.sql("SEThive.merge.mapredfiles=true")spark.sql("SEThive.merge.mapfiles=true")spark.sql("sethive.merge.smallfiles.avgsize=128000000")spark.sql("sethive.merge.size.per.task=128000000")除了

hadoop - 如何将分区 Hive ORC 表中的多个 ORC 文件(属于每个分区)组合成一个大的 ORC 文件

我在Hive中有一个分区的ORC表。在用所有可能的分区加载表后,我得到了HDFS-多个ORC文件,即HDFS上的每个分区目录都有一个ORC文件。对于某些用例,我需要将每个分区下的所有这些ORC文件组合成一个大的ORC文件。有人可以建议我将这些多个ORC文件(属于每个分区)组合成一个大的ORC文件的方法。我已经尝试从分区表创建一个新的非分区ORC表。它确实减少了文件数量,但没有减少到单个文件。PS:从另一个表创建一个表完全是一个map任务,因此使用属性“setmapred.reduce.tasks=1;”将reducer的数量设置为1;没有帮助。谢谢 最佳答案

hadoop - Hive 中的索引

我在hadoop集群上有一个相当大的Hive表(约200亿条记录),我需要对其进行多次连接。是否可以在一个键上索引这个表?例如,如果表名是table1,我想对table1和table2进行多次连接,table3和表4列关键什么是最有效的方法来做到这一点?如果相关表2-4相对非常小(每个约1亿) 最佳答案 恕我直言,索引只有在对表1具有非常高的选择性时才会在这种情况下有所帮助。如果table1的重要部分(我推测超过1-5%)将成为连接的结果,索引将不会有效。原因是您无论如何都会阅读所有页面/block。Hive可以确定一个表很小,并在

sql - 在 Hive 中查询

在SQL中我们有分区依据和分组依据selectdeptno,count(*)cfromempgroupbydeptno;DEPTNOC-------103205306selectdeptno,count(*)over(partitionbydeptno)cfromemp;DEPTNOC-------103103103205205205205205306306306306306306如果我们需要在HIVE中练习同样的事情,会有什么选择。我们在Hive中有同样的东西吗?请建议提前致谢。 最佳答案 Hive支持窗口函数,参见Windowi

hadoop - 在 Hive 中导入带有 key=value 对的平面文件

我在HDFS中有格式为原始文件name=ABCage=10Location=QWERTYname=DEFage=15Location=IWIORS如何将这些平面文件中的数据导入到仅包含“名称”和“位置”列的Hive表中。 最佳答案 您可以执行以下操作。在表声明中,使用:ROWFORMATDELIMITED        FIELDSTERMINATEDBY''--space        MAPKEYSTERMINATEDBY'='此外,您的表将有一个数据类型为Map的列。因此,当您可以使用键从单个列中删除数据时。其他选项:编写自己

java - 使用 Hive UDF 计算加权因子

我是Hive的新手,我会帮助编写一个UDF函数来计算权重因子。计算看起来很简单。我有一个表,其中有一些值KEY,VALUE按GROUP_ID分组。对于一组中的每一行,我要计算权重因子,0和1之间的float,即组中该元素的权重。进入该组的权重因子之和必须为1。本例中值为距离,则权重与距离成反比。GROUP_ID|KEY|VALUE(DISTANCE)====================================110411131122213121453.......数学函数:1/(Xi*sum(1/Xk))从k=1到N)GROUP_ID|KEY|VALUE|WEIGHTING

hadoop - pig : get data from hive table and add partition as column

我有一个分区的Hive表,我想将其加载到Pig脚本中,并且还想将分区添加为列。我该怎么做?Hive中的表定义:CREATEEXTERNALTABLEIFNOTEXISTStransactions(column1string,column2string)PARTITIONEDBY(datestampstring)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'LOCATION'/path';pig脚本:%defaultINPUT_PATH'/path'A=LOAD'$INPUT_PATH'USINGPigStorage('|')AS(column1:cha

hadoop - Hive - 如何从文件名作为列的文件中加载数据?

我正在运行以下命令来创建我的表ABC并从我指定文件路径中的所有文件中插入数据。现在我想添加一个带有文件名的列,但是如果不循环遍历文件或其他东西,我找不到任何方法来做到这一点。关于执行此操作的最佳方法有什么建议吗?CREATETABLEABC(NAMEstring,DATEstring)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILE;hive-e"LOADDATALOCALINPATH'${DATA_FILE_PATH}'INTOTABLEABC;" 最佳答案 Hive

hadoop - 使用 pig/hive 进行半结构化数据处理

我有如下所示的半结构化数据:col1col2col3col4123[name#aa,address#[perminentaddress#abc,currentaddress#xyg]]598[address#[perminentaddress#dev,currentaddress#pqr],name#bb]349[name#cc,mobile#111,id#66address#[perminentaddress#abc,currentaddress#xyg]]前三列是固定的,第四列可以包含任何带有键值对的未知数据。键值对可以嵌套,如上例所示。最重要的是第4列的键位置不固定,可以有无限数