草庐IT

提取分区

全部标签

hadoop - 分区 hive 数据复杂数据类型,同时插入数据它显示错误

我使用hive创建了一个表,我想根据位置对数据进行分区createtablestudent(idbigint,namestring,locationstring,coursearray)ROWFORMATDELIMiTEDfieldsterminatedby'\t'collectionitemsterminatedby','storedastextfile;和类似的数据100student1ongolejava,.net,hadoop101student2hyderabad.net,hadoop102student3vizagjava,hadoop103student4ongole.n

hadoop - Hive 加入 2 个表,一个有分区,另一个没有

我必须对表格假设表格一是X,表格二是Z。表Z有一个分区谓词。表X是一个国家/地区表,具有以下字段country_id,country_name表Z包含一些数据,我想将该表的country_id映射到表X。我试过了selectc.country_id,c.country_name,s.sales_id,s.sales_ctry_idfromx_tablecjoinz_tableson(c.country_id=s.sales_ctry_id)但是因为表Z是按日期字段分区的,所以我无法让这个连接工作。有什么建议吗? 最佳答案 您应该使用

hadoop - 为子分区创建 Hive 表

我有一个带日期分区的配置单元表。这些日期从2017年1月1日开始。HDFS位置是按日期分区的。我如何创建一个仅考虑来自上述HDFS位置的5个日期的Hive表? 最佳答案 createtablenewtableasselectcolumn1,column2,column3fromoldtablewhereDateStamp>='2017-01-01'andDateStamp 关于hadoop-为子分区创建Hive表,我们在StackOverflow上找到一个类似的问题:

hadoop - 在 Spark SQL 中使用正则表达式函数从字符串中提取特定数字

我在mysql中有一个表,它有POST_ID和相应的INTEREST:我使用以下正则表达式查询来选择包含1,2,3的兴趣。SELECT*FROMINTEREST_POSTwhereINTERESTREGEXP'(?=.*[[::]])(?=.*[[::]])(?=.*[[::]])';我在HDFS中导入了表。但是,当我在SparkSQL中使用相同的查询时,它显示空记录。如何在spark中使用这里的REGEXP函数来选择包含1,2,3的兴趣? 最佳答案 您正在使用的正则表达式需要稍微更改一下。您可以执行以下操作。scala>valmy

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

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

xml - HiveQL & XPath - 如何提取值和替换一些字符

我有一个XMLblob(如下所示)存储在配置单元日志表中。1424324325...firstJoh,n...lastD,oe...hive表中的每一行都有关于不同用户的信息,我想提取uid、名字和姓氏的值(删除名称中的任何逗号)。1424324325JohnDoe1424435463JaneSmith我能够从XML中提取值。SELECTuid,fn,lnFROMlog_tableLATERALVIEWexplode(xpath(logs['users_updates'],'/user/uid/text()'))uidsasuidLATERALVIEWexplode(xpath(log

sorting - mapreduce 分区内的数据是否已排序,如果是,它是如何发生的?

mapreduce分区内的数据是否已排序,如果是,如何排序?AFAIK,它是根据key分组的。如果它在内部排序,那么对所有分区内的所有数据进行排序不是一种开销吗? 最佳答案 如果您谈论的是映射器作为输入接收的输入拆分,那么不是;它们没有排序,因为这确实会产生不必要的开销。排序在map阶段结束之前开始(仅当使用reducer时),因此reduce函数的输入已排序。Partitioner定义了指定哪个reducer将处理映射器输出的标准。HashPartitioner(默认使用的Partitioner的实现)对映射器的输出键进行哈希处理

hadoop - 如何在 Hive 的 SELECT 语句中提取定界值右侧的字符

我需要提取“/”右侧的所有字符作为选择语句的一部分。cityAmerica/ChicagoEurope/London预期输出是citynameChicagoLondon这是我的查询,它不起作用selectsubstring(city,charindex('/',city)+1,length(city))ascitynamefromtable; 最佳答案 您可以使用正则表达式来提取城市名称。使用正则表达式,您的查询将是这样的。selectregexp_extract(city,'([a-zA-Z]+)',1)fromtable_nam

hadoop - 为什么分割点在 Hadoop 总顺序分区器上乱序?

我使用Hadooptotalorderpartitioner和randomsampler作为输入采样器。但是当我增加从属节点并将任务减少到8个时,出现以下错误:Causedby:java.io.IOException:Splitpointsareoutoforder我不知道这个错误的原因。如何在inputsampler.randomsampler函数上设置三个参数的个数? 最佳答案 两个可能的问题您有重复的key您正在为输入采样器和运行总顺序分区器的任务使用不同的比较器您可以通过下载分区文件并检查其内容来诊断此问题。分区文件是tot

hadoop - Hive 动态分区,未创建正确的分区

我正在尝试将数据插入到分区表中,但并未创建所有分区(仅创建了空值和零值),请参见下文。hive>selectstate_code,district_code,count(*)frommarital_statusgroupbystate_code,district_code;TotalMapReducejobs=1启动的MapReduce作业:...Job0:Map:1Reduce:1CumulativeCPU:3.49secHDFSRead:193305HDFSWrite:240SUCCESSTotalMapReduceCPUTimeSpent:3seconds490msecOK280