草庐IT

hadoop - 将其他类型转换为 Impala 数组

我有一个程序可以将这样的字符串('A','B')注入(inject)到查询中。如何将它转换成像这样的阵列横向Viewcol---ABImpala与Hive中没有explode(array('A','B'))函数。我无法将这些值存储在表中,因为它在内存中并动态注入(inject)到SQL中。我需要这个的原因是我有另一个表来连接数组中的项目。谢谢 最佳答案 Impala只允许选择基本类型作为select语句的一部分,要展开数组(我猜你的表只有一个名为myarray的列),你需要做这样的事情。演示:在hive中createtabletes

sql - 在 Impala 中使用字符串或数组检查子集

我有一张这样的tablecol-----A,Bcol可以是带逗号的字符串或数组。我在存储方面具有灵active。如何检查col是另一个字符串或数组变量的子集?例如:B,A-->TRUE(顺序无关紧要)A,D,B-->TRUE(中间的其他项)A,D,C-->FALSE(缺少B)我在类型上有灵active。该变量是我无法存储在表中的内容。如果您仅对Impala(无Hive)有任何建议,请告诉我。谢谢 最佳答案 一个不太漂亮的方法,但也许是一个起点......假设一个表有一个唯一标识符列id和一个array专栏col,和一个带有','的字

hadoop - 如何获取 hdfs 文件上最后添加的数据?

我有数据以一定的速度传输到HDFS文件中。我有一个建立在它之上的外部配置单元表。Data有一个timestamp列和一个int列。每5分钟,将添加一行。我有一个JDBC程序,如果int列值是否超过限制,它需要检查最后添加的行。我以为我会为新的时间戳写一个搜索查询,获取行并检查它的int列值。但是,它遍历整个表以搜索最后附加的行。我可以在时间戳列上创建索引。有没有其他方法可以检索最近添加的数据,这样性能就不会下降? 最佳答案 按日期(例如load_date)对表进行分区,您可以使用date()函数从时间戳字段中导出日期。当然,您还需要

hadoop - 失败 : Execution Error, 在配置单元中的连接操作期间从 org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask​​ 返回代码 2

我正尝试在配置单元中对以下两个表运行连接查询-selectb.locationfromuser_activity_ruleainnerjoinuser_info_rulebwherea.uid=b.uidanda.cancellation=true;QueryID=username_20180530154141_0a187506-7aca-442a-8310-582d335ad78dTotaljobs=1OpenJDK64-BitServerVMwarning:ignoringoptionMaxPermSize=512M;supportwasremovedin8.0Executionl

hadoop - 插入 HIVE 表时转换值

我已经创建了名为emp_bucket的分桶表,分为4个桶,这些桶聚集在salary列上。表的结构如下:hive>describeConsultant_Table_Bucket;OKidintageintgenderstringrolestringsalarydoubleTimetaken:0.069seconds,Fetched:5row(s)我还有一个暂存表,我可以从中将数据插入到上面的分桶表中。以下是暂存表中的示例数据:idageGenderrolesalary-----------------------------------------------------93838Fco

Hadoop集群-重启后Hive无法启动

我有5个节点的hadoop集群正在运行。Hive运行良好,可以创建表、添加数据等。然后尝试重新启动所有5个节点,现在Hive无法启动。使用MySql作为Metastore。可能是什么问题以及如何解决?尝试启动hive时的日志:Exceptioninthread"main"java.lang.RuntimeException:org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.Ses

hadoop - 如何使用 Ambari UI 配置分析引擎使用 Hive LLAP?

IAE是否支持HiveLLAP功能?如果是,如何使用AmbariUI启用它?我尝试根据tutorialfromHortonworks启用但我收到错误:$hiveLogginginitializedusingconfigurationinfile:/etc/hive/2.6.5.0-292/0/hive-log4j.propertiesExceptioninthread"main"java.lang.RuntimeException:org.apache.tez.dag.api.TezException:org.apache.hadoop.yarn.exceptions.YarnExce

hadoop - 通过命令行运行 HQL 查询时出错

我正在通过命令行运行查询并收到此错误。命令:hive-equery1.hql失败:ParseException行1:0无法识别“query1”附近的输入。'hql'CREATETABLEdcarlo.new_tableASSELECTma.name,ma.address,ma.stateFROMmain_dbASmaWHEREma.dt>=20180301ANDma.dt 最佳答案 使用-f而不是-e从文件运行脚本。hive-fquery1.hqlSource用法:hive-d,--definekey=value应用于Hive的变量

hadoop - 如何将 mapreduce 结果加载到 Hive 中?

我有一个目录,我在其中存储格式为“(integer1,integer2,integer3)”的mapreduce结果,我想将该数据加载到ApacheHive中。首先我创建这样的表:创建表测试(field1int,field2int,field3int);后来我尝试以这种方式加载数据:将路径'/user/myuser/output/test'中的数据加载到表test中;路径没问题,表格加载了好几行,但都是空的(3个字段为NULL)。我该如何解决? 最佳答案 轻松修复。在你的MR程序中按照以下格式写入数据integer1,integer

hadoop - AWS Athena 在分区加载后创建缩进并将值移动到错误的列中

我遇到了以下问题:我在没有分区的HDFS中的EMR集群中创建了一个Hive表并向其加载数据。我根据第1段中的表,但带有日期时间的分区列:PARTITIONEDBY(年STRING,月STRING,日STRING)。我将非分区表中的数据加载到分区表中并获得有效结果。我创建了一个Athena数据库和具有与Hive表相同结构的表。我从本地HDFS复制分区文件,并通过awss3sync将所有文件传输到S3空存储桶中。所有文件均已无误地传输,并且传输顺序与HDFS中Hive目录中的顺序相同。我通过MSCKREPAIRTABLE加载分区并且在输出中没有得到任何错误。之后我发现很多值都有缩进,例如需