草庐IT

xml - 如何将xml文件加载到Hive中

我在处理Hive表时遇到以下问题。我的HDFS中有超过10亿个xml文件。我想要做的是,每个xml文件都有4个不同的部分。现在我想为每个xml文件拆分并加载每个表中的每个部分示例:1233222//havinglotofxmltages//havinglotofxmltages//havinglotofxmltages//havinglotofxmltages我有四张tablesection1Tableidsection1//fieldssection2Tableidsection2section3Tableidsection3section4Tableidsection4现在我想将数

hadoop - HIVE 创建表不为空

这是我在DB2数据库中的查询:CREATETABLEMY_TABLE(COD_SOCCHAR(5)NOTNULL);是否可以在HIVE中重现“NOTNULL”?PIG呢? 最佳答案 不,目前不可能。Hive很难强制执行列约束。 关于hadoop-HIVE创建表不为空,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/25186539/

java - 如何使用正则表达式 serde for::作为文件中的定界符

我有一个数据集,它使用双冒号(::)作为分隔符。如何在Hive中使用正则表达式serde解析数据以便将其导入表中?数据结构如下:userId::movieId::rating::time目前我正在使用这个查询,但它为选择语句提供空值:createtablerating_regex(userIdstring,movieIdstring,ratingstring,timestring)rowformatserde'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'withserdeproperties("input.regex"="::")s

python - Hive 转换使用 Python : Unable to initialize custom script

我正在尝试通过将Python脚本作为映射器来测试HiveTRANSFORM。我的hive脚本是:addfile/full/path/to/mapper.py;setmapred.job.queue.name=queue_name;usemy_database;selecttransform(s.year,s.month,s.day,s.hour)using'mapper.py'frommy_tableslimit10;我的Python映射器脚本只是试图回应输入:#!/usr/local/bin/pythonimportsysforlineinsys.stdin:printline我尝试

hadoop - 如何避免为 Hive 查询生成空的 .deflate 文件?

当我运行Hive查询时,生成了大量空的.deflate文件(它们实际上大约8个字节,我认为这是.deflate文件)。我怀疑发生这种情况是因为查询需要大量的reducer。我想知道是否有办法避免生成这些空的.deflate文件?提前致谢林 最佳答案 .deflate是默认的压缩编解码器Hive有压缩设置,可用于减少Hive占用的磁盘空间量用于其查询。当属性hive.exec.compress.output=true时,Hive将使用codec由mapred.map.output.compression.codec属性配置以压缩HDF

hadoop - 计算列上的 Hive 分区修剪

我在Hive上有几个表,我的查询试图检索过去x天的数据。当我使用直接日期时,Hive正在修剪分区,但当我改用公式时,Hive正在执行全表扫描。select*fromf_eventwheredate_key>20160101;scannedpartitions..s3://...key=20160102[f]s3://...key=20160103[f]s3://...key=20160104[f]比方说,如果我使用公式来获取过去4周的数据Selectcount(*)Fromf_eventfWheredate_key>from_unixtime(unix_timestamp()-2*7*

hadoop - 子查询中的 Hive 'limit' 在完整查询后执行

我正在配置单元查询中测试一个相当费力的rlike函数。我想我会先针对一个子集进行测试,然后再将其应用于我的TB+数据。完整查询是:createtableproxy_parsed_cleanasselecta.*,casewhendomainnamerlike'.*:443$'then1else0endasused_httpsfromproxy_parseda;因为有这么多数据,我写了一个查询(表面上)会针对一个子集进行操作:selectcasewhena.domainnamerlike'.*:443$'then1else0endasused_httpsfrom(selectdomain

sql - (Hive, SQL) - 如何对列内的字符串列表进行排序?

我在Hive(SQL)中遇到大数据问题。SELECTgenre,COUNT(*)ASunique_countFROMtable_nameGROUPBYgenre结果如下:genre|unique_count----------------------------------Romance,Crime,Drama,Law|1560Crime,Drama,Law,Romance|895Law,Romance,Crime,Drama|942Adventure,Action|3250Action,Adventure|910我想要的是按genreASC|DESC对元素进行排序并得到如下结果gen

hadoop - 删除配置单元分区的外部表但保留分区

使用外部配置单元表时,有没有一种方法可以删除目录中的数据,但通过查询保留分区。请注意我不想删除表并重新创建它。我只想清空底层文件夹并重新开始一个过程。我的表很大,按年、月、日和小时分区,手动重新创建分区需要很多时间。谢谢 最佳答案 truncatetable...删除所有数据。truncatetablepartition(...)删除特定分区的数据。保留目录结构。首先应该将外部表转换为管理表,例如altertabletsettblproperties('EXTERNAL'='FALSE');完成后,我们可以将其转换回来alterta

sql - 按生成的列分组

我试图按分钟对数据进行分组,所以我尝试了这个查询:SELECTFROM_UNIXTIME(unix_timestamp(time,'yyyy-mm-ddhh:mm:ss'),'yyyy-mm-ddhh:mm')asts,count(*)ascntfromtouchergroupbytslimit10;然后hive告诉我没有这样的列,FAILED:SemanticException[Error10004]:Line1:134Invalidtablealiasorcolumnreference'ts':(possiblecolumnnamesare:time,ip,username,cod