草庐IT

元中都

全部标签

hadoop - 用于配置单元中简单序列文件的 serde

我有一个包含Text键和DoubleWritable值的序列文件。当我将文件加载为外部表时Createexternaltablet(idString,dataDouble)STOREDASSEQUENCEFILELOCATION'/output';创建成功。但是,当我尝试使用select*语句查看数据时,出现异常"Failedwithexceptionjava.io.IOException:org.apache.hadoop.hive.serde2.SerDeException:classorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerD

java - 如何从配置单元中的字符串中删除特殊字符

大家好,我是Hive的新手..1)我正在尝试从金额中删除美元符号,但它不起作用我正在使用reg-ex提取。2)并且还希望数量在0-99,100-199之间,依此类推。 最佳答案 由于您的单元格具有格式字符串($ddd.dd)..我只需将$替换为''例如:SELECTREGEXP_REPLACE(OrderAmount,'\\$','')要在100范围内计数,您可以执行以下操作:SELECTCOUNT(*)FROMorderGROUPBYfloor(float(REGEXP_REPLACE(OrderAmount,'\\$',''))

hadoop - 删除配置单元中的连续行

在配置单元的特定字段中删除具有重复值的连续行的有效方法是什么?例如:输入:IDfield1field2date1ab2015-01-011ab2015-01-022ed2015-01-03输出:IDfield1field2date1ab2015-01-012ed2015-01-03提前致谢 最佳答案 删除连续重复项的一种方法是使用lag检查前一个id并只保留前一个id不同的行:select*from(select*,lag(id)over(orderbydate)previous_idfrommytable)twheret.prev

hadoop - 为什么HDFS中的 block 大小在所有DataNode中都一致?

继续提问:datablocksizeinHDFS,why64MB?我知道在分发中的所有数据节点中,HDFS中的块大小为一致/相同(大小取决于配置)。我的问题是:为什么此块大小在所有NameNode中保持一致?我问这个问题是因为,我有10个高端处理机作为DataNode,还有20个低端硬件。如果我们在这10台计算机的HDFS中保留更高块的块,它可以更快地处理吗?另外,NameNode具有元数据以标识DataNode中的块,因此机器之间块大小不一致的问题是什么? 最佳答案 letsayIhave10higherendprocessing

sql - 如何查询由配置单元中的聚合函数创建的列?

在hive中,我想选择users>=40的记录。我的表列由字段userid组成。所以我用了selecttitle,sum(rating),count(userid)fromtable_name其中count(userid)>=40按标题分组orderbyratingdesc但是它显示错误,比如你不能在where子句中使用count。我也试过使用像这样的别名selecttitle,sum(rating)asratings,count(userid)asuserswhereusers>=40groupbytitleorderbyratingsdesc在这里我也遇到了错误,显示用户不是表中的

sql - 根据配置单元中的 2 列从表中获取最新记录

我想根据num和id列从我的源表中获取最新记录并插入到我的目标表中。场景在随附的屏幕截图中进行了说明。可以使用最新记录日期列。Screenshot谢谢。 最佳答案 Selectnum,id,dateFROM(Select*,ROW_NUMBER()OVER(partitionbynum,idOrderbydatedesc)asrnkFROMsource_table)aWHERErnk=1; 关于sql-根据配置单元中的2列从表中获取最新记录,我们在StackOverflow上找到一个类似

hadoop - 与配置单元中的外部表混淆

我使用以下命令创建了配置单元外部表:usehive2;createexternaltabledepTable(depIdintcomment'Thisistheuniqueidforeachdep',depNamestring,locationstring)comment'departmenttable'rowformatdelimitedfieldsterminatedby","storedastextfilelocation'/dataDir/';现在,当我查看HDFS时,我可以看到数据库,但仓库内没有depTable。[cloudera@quickstart~]$hadoopfs

hadoop - 合并配置单元中的列

我是hive的新手。请帮助解决我的以下问题。我在配置单元中有下表,其中一列的数据带有|作为分隔符。C11|2|3|4|5|67||9|10|11|12下面是基于分隔符的预期输出,我想将其拆分为列。C1C2C3C4C5C612345679101112我已经尝试使用locate和substr函数,并以复杂的sql查询结束。你们能帮我用一种简单的方法来做到这一点吗?谢谢! 最佳答案 使用split返回值的数组,可以从中选择单个元素作为列。selectsplit(c1,'\\|')[0]asc1,split(c1,'\\|')[1]asc2

mysql - 将日期转换为配置单元中的时间戳

我在rdbms中有一个表,其中日期格式为“1986-12-01”。我使用的是配置单元.08而不是.12。当我将数据导入配置单元时,时间戳为空,是否有任何选项可以直接从文件中填充表中的数据(数据非常大)。或者我必须使用带有字符串的阶段表,然后使用函数将数据转换为时间戳,如果是这样的话会是什么样?谢谢! 最佳答案 我会根据MySQL来回答你,因为我在这篇文章中看到了一个带有那个RDMS名称的标签。那么,你有三个选择。1。Sqoop查询端过滤我在这里假设您使用Sqoop导入数据。此工具有一个选项,允许您导出SQL查询的结果。在该查询中,您

sql - 选择配置单元中的下一个非空字段

我有一个包含6个字段的表,如下所示:Field1Field2Field3Field4Field5Field6ABC45XYZJKLBNM65QWEJKLWERYUIIOPGHJ我想将数据从上面的表中提取到一个包含5个字段的新表中,我们忽略空值。我的决赛table应该是这样的:Result1Result2Result3Result4Result5ABC45XYZJKLBNM65QWEJKLWERYUIIOPGHJ我已经开始使用CASEWHEN编写大量条件查询,但它已经失控并且容易出错。是否可以在Hive中使用regex_extract查询获取该表? 最佳答案