草庐IT

hadoop - 将数据从 HDFS 加载到 Hive 时出现问题

场景1:在配置单元中创建表时提供​​自定义位置,然后使用“从本地复制”命令加载数据。下面的过程是直接将数据加载到我的表中。但是当我使用默认位置使用“从本地复制”命令加载数据时,方案2不起作用。因为它执行时没有任何错误,但没有加载我的表。场景1命令的链接---Scenario1Commands--这是将数据加载到表中。Scenario2Commands--将场景1的位置路径替换为默认配置单元路径--但未加载数据。 最佳答案 使用下面的命令找到文件需要复制到的确切位置hive-e'describeformattedEmployee'如果

hadoop - 如何列出 Hive 中所有数据库中所有表中的所有列

我需要列出我的Hive中所有数据库的所有表中的所有列。我需要这样一行:Database.table.columncolumn_typecomment显然我可以使用showdatabases;对于我可以使用的每个数据库showtables;并且对于每个表使用:describetable_name;显然,我可以使用位于我的Postgress数据库中某处的Hive_metastore数据库,但我无法访问那里。但我想要一个bash脚本,它可以遍历数据库->表->列并获取详细信息。我已经开始生成数据库列表:hive-e'showdatabases;'|teedatabases.txt比起我要遍历

hadoop - 纱容器尺寸和 Tez 容器管理

我有一个集群,其中包含大约15TB的yarn资源。我正在尝试通过Hive提交查询。我在yarn上的默认容器大小是4GB。为该查询分配的映射器数量约为1000。我的yarn队列中总共分配了10%的资源。因此在单个时间点只会分配430个Container。每个映射器总共分配了1个容器。HDFS上的block大小为128MB。我如何优化查询。 最佳答案 您已经提到了内存设置,这听起来不错,因此您接下来优化查询的步骤(因为您没有提供)是AdditionallytunetheTezcontainers使您的HDFS输入文件的大小接近HDFSb

hadoop - HIVe - 创建表为 - 从现有表创建 Parquet 表时出错

我使用CTAS从现有表(订单)创建了一个Parquet表(orders_parquet),如下所示:CREATETABLEorders_parquetROWFORMATSERDE'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'STOREDASINPUTFORMAT'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.parquet.MapredParquetO

hadoop - hive 列到行

如何根据存储在现有列中的类型在HIVE中创建新列?例如,我有:idProductType1car2bike3truck我想拥有:idcarbiketruck11nullnull2null1null3nullnull1 最佳答案 Use`case`statementtoconvertvaluesintocolumns:selectid,casewhenProductType='car'then1endascar,casewhenProductType='bike'then1endasbike,casewhenProductType='

hadoop - Presto 不从 Hive Metabase 返回行

我是AWSEMR的新手。我已经启动并运行了Hive,并且可以毫无问题地查询S3中的外部表。我现在已经将Presto安装到EMR集群上,这似乎已启动并正在运行并且可以读取Hive元数据库。但是,我运行的每个查询都会返回列标题,但实际上不会返回任何列(下面的查询)。presto:default>selectcount(*)frompatrequests;_col0-------0(1row)Query20171113_163811_00033_vdw6c,FINISHED,1nodeSplits:17total,17done(100.00%)0:00[0rows,0B][0rows/s,0

hadoop - 我们如何在 Hadoop 中导入视频或音频或图像,并可以做进一步的分析。

我知道如何使用Pig、hive、sqoop使用Jsonloader和Jsonserde在hadoop中导入和分析结构化和半结构化数据,但如何导入视频、音频或图像等非结构化数据以及如何对其进行进一步分析.请逐步简单地解释,如果您有任何分析非结构化数据的用例,将会有很大帮助。谢谢! 最佳答案 由于Hadoop不能很好地处理小文件,一种方法是将二进制文件分组为少量大文件(以避免处理有大量的小文件)。为此,您可以使用自定义UDF将二进制文件(图像、音频、视频等)转换为序列文件,将它们聚合并存储到HDFS。下面的书PigDesignPatte

hadoop - 使用动态列插入 Hive

我收到的文件中的列是动态的。文件1可以是column1column2column3column4column5column6column7文件2可以column1column2column9column10column11column12column13文件3可以column1column2column3column10column11如何将配置单元表修改为我将随文件一起接收的列。 最佳答案 这会非常困惑,但如果没有任何明确的定界符,您能做的最好的事情就是定义一个RegexSerDe并捕获每个可能的列。您缺少的列基本上是一个可选的捕

hadoop - 使用直线命令将配置单元查询下载为 csv 格式

我需要将hive查询结果以csv格式下载到本地文件路径。此外,列值应包含在引号中,字段以逗号结尾,文件的第一行应包含列标题。任何人都可以帮助我实现这一目标的最佳方法吗?注意-查询通常返回超过500万行。 最佳答案 最好的方法是使用您选择的数据创建一个配置单元表,如下所示。CREATEEXTERNALTABLEramesh_csv(col1INT,col2STRING)ROWFORMATSERDE'org.apache.hadoop.hive.serde2.OpenCSVSerde'WITHSERDEPROPERTIES("separ

sql - 正则表达式替换在 HIVE 中不起作用

我想将数据中的;替换为HIVE中的:尝试了以下但没有工作hive>selectREGEXP_REPLACE('Mozilla/5.0(Macintosh;Intel',';',':');如何在HIVE中实现这一点。我在转换它时遇到问题。 最佳答案 只需使用replace():selectreplace('Mozilla/5.0(Macintosh;Intel',';',':')replace()在文档中描述。 关于sql-正则表达式替换在HIVE中不起作用,我们在StackOverflo