草庐IT

java - 用于查找最常出现的列值的 Hive UDAF

我正在尝试创建一个HiveUDAF来查找最常出现的列(字符串)值(不是单个字符或子字符串,使用精确的列值)。假设以下是我的名为my_table的表(破折号用于在视觉上分隔列)。User_Id-Item-Count1-A-11-B-11-A-11-A-11-A-11-C-12-C-12-C-12-A-12-C-1假设我调用以下脚本:SelectUser_Id,findFrequent(*)frommy_tablegroupbyUser_Id我应该得到以下输出,因为对于User_Id=1,A出现了4次而B和C只出现了一次。所以,User_Id=1最频繁的是A。同样,User_Id=2最频繁

hadoop - 如何循环 Hive 查询并使用循环变量

假设我有两个表Externaltable-etableInternaltable-itable我的表是根据日期分区的。现在,为了每天从etable的数据中填充我的itable,我在hue中使用HiveQuery的工作流和协调器如下所示:ALTERTABLEetableADDIFNOTEXISTSPARTITION(date='${date}')LOCATION'path/date=${date}';INSERTOVERWRITETABLEitablepartition(date='${date}')SELECT*FROMetableWHEREdate='${date}';现在假设每天我

hadoop - Hive 中 MetaStore 的主要用途?

我对MetaStore的用途有点困惑。在hive中创建表时:CREATETABLE(column1data_type,column2data_type);LOADDATAINPATHINTOtablemanaged_table;所以我知道这个命令获取HDFS中文件的内容并创建它的MetaData形式并将其存储在MetaStore中(包括每行的列类型,列名,它在HDFS中的位置等)在HDFS文件中)。它实际上并没有将数据从HDFS移动到Hive。但是存储这个元数据的目的是什么?例如,当我使用SparkSQL连接到Hive时,MetaStore不包含HDFS中的实际信息,而只包含元数据。那

hadoop - 我们如何将多个 hql 文件传递​​给 hive/beeline?

我想在一个配置单元session中运行file_1.hql和file_2.hql。我怎样才能做到这一点?我正在考虑将这两个文件作为hive-ffile_1.hqlfile_2.hql传递。但是-f只需要一个文件。有什么建议吗? 最佳答案 使用bash怎么样:hive-e"$(catfile1.hqlfile2.hql)" 关于hadoop-我们如何将多个hql文件传递​​给hive/beeline?,我们在StackOverflow上找到一个类似的问题: ht

hadoop - 无法将数据从 CSV 文件加载到 HIVE

我在将数据从CSV文件加载到配置单元外部表时得到“无”值。我的CSV文件结构是这样的:creation_month,accts_created7/1/2018,408476/1/2018,672165/1/2018,760094/1/2018,876113/1/2018,996872/1/2018,926311/1/2018,11195112/1/2017,107717'creation_month'和'accts_created'是我的列标题。createexternaltablemonthly_creation(creation_monthDATE,accts_createdINT

hadoop - Hadoop 集群上的 Hive/Map-Reduce 作业 : How to (roughly) calculate the diskspace needed?

以下用例:我对.gz压缩大小约为500GB的数据运行配置单元查询:selectcount(distinctc1),c2fromt1groupbyc2;此查询产生约2800个映射作业和约400个缩减作业。在设置具有20个实例(每个160GB实例存储)的Hadoop集群时,该工作将停止在97%map和21%reduceprogress,然后回落到94%map和19%reduceprogress,然后就没有任何进展了。我认为这是因为HDFS的磁盘空间已达到使用限制。也许我可以在当天晚些时候提供异常消息。如何:有没有办法根据正在处理的数据的输入大小粗略地预先计算所需的HDFS磁盘空间?请记住,

hadoop - 得到错误的 FS : file while running hive query

在hive上运行一个简单的选择查询时我遇到了这个奇怪的错误java.lang.IllegalArgumentException:WrongFS:file://usr/lib/hive/lib/CustomUDFint.jar,expected:file:///atorg.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:410)atorg.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:56)atorg.apache.hadoop.fs

hadoop - hive 选择列做一个案例陈述

这会将数据从dynamodb动态导出到s3。--LoadS3TablewithdatafromDynamoDBINSERTOVERWRITETABLEs3_tableSELECT*FROMdynamodb_table;问题是它留下了一堆\N。我可以手写它看起来像--LoadS3TablewithdatafromDynamoDBINSERTOVERWRITETABLEs3_tableSELECTDCS_ID,CASEWHENMAKEISNULLTHEN""ELSEMAKEEND,CASEWHENMODELISNULLTHEN""ELSEMODELENDFROMdynamodb_table

hadoop - 如何使用flume创建任务自动定时从HDFS加载数据到HIVE?

我需要将数据从hadoop自动加载到hive,但我不想设置其他服务来执行此操作。我已经使用flume来收集我的日志了……那我该怎么办呢?flume是否可以执行命令(查询hive就像LOAD.....)? 最佳答案 抱歉,我来晚了一点,但实际上我已经整理了一个非常完整的示例,说明如何执行此操作并公开了所有细节。也许,它会帮助别人http://www.lopakalogic.com/articles/hadoop-articles/log-files-flume-hive/祝你好运! 关于h

hadoop - 启用安全性的 Hive 创建权限

我已将Kerberos设置为hive的安全模型,但我正在努力获得正确的权限。现在用户可以很好地创建和删除数据库,但不能创建表:hive>showdatabases;OKcpenneydefaultTimetaken:0.051seconds,Fetched:2row(s)hive>dropdatabasecpenney;OKTimetaken:0.098secondshive>createdatabasecpenney;OKTimetaken:0.062secondshive>createtabletest(hostgroupSTRING);Authorizationfailed:No