草庐IT

hive-overwrite

全部标签

hadoop - hdfs 和 hive 有什么关系?

我有psudeo分布式hadoop环境,使用sqoop和hive进行数据导入和分析。我使用sqoop将数据从mysql导入到hive并且它工作正常,我在我的hive位置获取了数据,即/user/hive/warehouse/我可以看到hive中的数据表。我的疑问是:当我从mysql导入到hive(构建在hadoop之上)时,数据会存储在hadoop中吗?为什么它在我的hdfs中创建/user/hive/warehouse?Hive如何处理数据?如果我在mysql中更新数据,我可以使用sqoop增量导入来更新hdfs中的数据,但如果我直接使用hive导入,它将反射(reflect)在hi

hadoop - Hive - 在不知道列名的情况下更改所有列的列类型

给定格式表:hive>describetableA;OKidinttstimestampvarfloat......我想使用类似于theone的解决方案由@interskh讨论在不知道并显式引用列名称的情况下将所有列转换为字符串。在语法行上:ALTERTABLEtableACHANGE>string 最佳答案 据我所知,您必须逐一更改列的数据类型。根据官方文档,您不能在单个查询中更改所有列的名称或数据类型。请引用this我最近回答的问题。 关于hadoop-Hive-在不知道列名的情况下

hadoop - 如何在 Hive 中使用使用 Apache Drill 创建的 Parquet 文件

ApacheDrill有一个很好的功能,可以从许多传入的数据集中制作parquet文件,但似乎没有很多关于以后如何使用这些parquet文件的信息——特别是在Hive中。Hive有没有办法利用那些“1_0_0.parquet”等文件?也许创建一个表并从parquet文件加载数据,或者创建一个表并以某种方式将这些parquet文件放入hdfs以便Hive读取它? 最佳答案 我遇到过这个问题,如果您使用的是Cloudera发行版,则可以使用impala创建表(Impala和Hive共享metastore),它允许从parquet文件创建

hadoop - 从 Hive 中的 collect_list 结果构造映射

一系列UNIONALL生成我想用来构建MAP的键值对列表。所需的功能是这样的:selectid1,id2,map(collect_list(col))asmeasurementsfrom(selectid1,id2,"height"ascolunionallselectid1,id2,count(*)ascolfromtable1unionallselectid1,id2,"weight"ascolunionallselectid1,id2,count(*)ascolfromtable2)什么是正确的实现方式?我希望得到的结果是:id1id2measurements110{"heigh

HIVE 表中的 JSON 数据上传给出 NoViableAltException/PraseException

我的Json在下面。我必须将此JSON加载到配置单元中,并且必须查询一些详细信息。{"id":"1234","pdid":"abcd","summary":{"tripStartTimestamp":1485263310528,"tripEndTimestamp":0,"status":10,"totalGPSDistanceMetres":0,"avgGPSSpeed":0,"maxGPSSpeed":0,"avgInstMileage":0,"totalHaltTimeSeconds":0,"totalIdlingTimeSeconds":0,"totalRunningTimeMi

hadoop - 带有 emrfs 的 hive

我正在使用sqoop将表从AmazonRDS导入到Hive。该进程正在运行,数据存储在配置单元默认的hdfs目录中:/user/hive/warehouse。我需要将存储位置从hdfs更改为emrfss3。据我了解,我需要将属性hive.metastore.warehouse.dir的值(在主节点上的hive-site.xml中)更改为s3//bucket/warehouse-location。看来我没有修改文件hive-site.xml的权限。我正在寻找一些关于如何最好地做到这一点的建议。苏堤 最佳答案 您需要sudo权限才能修改

hadoop - 用户 ALTER TABLE ... CONCATENATE 与 Hive 中的部分匹配分区

我想在Hive中使用ALTERTABLE...CONCATENATE功能,但似乎我必须提供准确的分区名称。例如,我有一个包含两个分区列、日期和组的表。我希望能够做这样的事情:altertablemytablepartition(insert_date='2017-04-11',group='%')CONCATENATE;但是我找不到这样做的方法。 最佳答案 Concatenate不支持这个。 关于hadoop-用户ALTERTABLE...CONCATENATE与Hive中的部分匹配分区

hadoop - Hive 更改外部表和更新架构

我正在寻找一个命令来为我的由Avro架构支持的Hive外部表添加列和更新架构。这是我到目前为止尝试过的方法。我有一个Hive外部表,其中包含使用此命令创建的Avro支持的架构-CREATEEXTERNALTABLE`person_hourly`('personid'stringCOMMENT'','name'stringCOMMENT'')PARTITIONEDBY('partitiontime'string)ROWFORMATSERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'STOREDASINPUTFORMAT'org.apach

hadoop - 如何在 Hive 中将 array<date> 转换为 array<string>

我想将数组转换为数组字符串,这样["2016-06-02","2016-06-02"]变成2016-06-02|2016-06-02 最佳答案 使用concat_ws(stringdelimiter,array)连接数组的函数:selectconcat_ws(',',collect_set(date))fromtable;如果日期字段不是字符串,则将其转换为字符串:concat_ws(',',collect_set(cast(dateasstring))) 关于hadoop-如何在Hiv

hadoop - 由于 UTC 时间, hive 中的日期转换问题

我有时间2017-05-04T23:25:23.234Z我想使用HIVE获取2017-05-0423:25:23.234。如何实现这一目标?实际数据-2017-05-04T23:25:23.234Z预期-2017-05-0423:25:23.234实际数据-2016-05-04T02:29:23.231234Z预期-2016-05-0402:29:23.231234请帮帮我 最佳答案 selecttranslate('2017-05-04T23:25:23.234Z','TZ','')2017-05-0423:25:23.234