草庐IT

hadoop - 尝试用 HQL 中的变量替换 HIVE 字符串文字

您好,我有一个简单的创建表语句...setlocation_stage=${env:HDFS_STAGING_DIR};CREATEEXTERNALTABLEIFNOTEXISTSstage.test(TEST_IDINT,TEST_NAMESTRING)ROWFORMATSERDE'org.apache.hadoop.hive.serde2.OpenCSVSerde'WITHSERDEPROPERTIES("separatorChar"=",","quoteChar"="\"","escapeChar"="\\")STOREDASTEXTFILELOCATION"${hivevar:

hadoop - hiveQL 中的嵌套选择

在我的一个用例中,我有两个表,即flow和conf。流表包含所有航类数据的列表。它有创建日期、数据文件名、飞机ID列。conf表包含配置信息。它有列configdate、aircraftid、configurationame。为一种飞机类型创建了多个版本的配置。因此,当我们处理一个数据文件名时,我们需要从流表中识别aircraftid,并从创建数据文件名之前创建的配置表中获取配置。所以,我试过了,FROM(SELECTF_FILE_CREATION_DATE,F_FILE_ARCHIVED_RELATIVE_PATH,F_FILE_ARCHIVED_NAME,K_AIRCRAFTfro

csv - 如何将具有不同分隔符的 CSV 加载到单个 Hadoop 表

我想用多个CSV文件填充一个Hive表。问题是并非所有文件都具有相同的分隔符。在创建表格时,我只能指定一个分隔符,例如~createtablestatus(typestring,...)ROWFORMATSERDE'org.apache.hadoop.hive.serde2.OpenCSVSerde'withserdeproperties("separatorChar"="~")STOREDASTEXTFILEHive是否有允许多个CSV分隔符的内置功能?我知道这些文件可以在加载之前由Hadoop作业标准化或基于https://stackoverflow.com/a/26356592/

hadoop - 启动 hive 时出错

我不知道在Ubuntu17.04的终端中启动配置单元时发生了什么,我在终端上遇到了一些错误。我是Hive的新手,面临一些问题,任何人都可以帮助我解决这个问题。我有(安装并在.bashrc文件中指定):哈多普:2.8.0hive:2.1.1java:1.8.0_131SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/src/hive-2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBin

performance - Hive 联合所有效率和最佳实践

我有一个hive效率问题。我有2个大量查询需要过滤、与映射表连接和联合。两个表的所有连接都是相同的。在将连接应用到组合表之前将它们合并,或者将连接分别应用到每个大规模查询然后合并结果会更有效吗?这有什么不同吗?我尝试了第二种方式,查询运行了24小时后才终止它。我觉得我已尽我所能来优化它,除了可能会重新排列union语句。一方面,我觉得这应该无关紧要,因为映射表连接的数量或行是相同的,而且由于所有内容都是颚化的,因此应该花费大致相同的时间。另一方面,也许通过先做联合,它应该保证在运行连接之前为两个大查询提供完整的系统资源。话又说回来,这可能意味着一次只有2个作业在运行,因此系统没有得到充

sql - 在数据中查找指定模式--Hive

我的表有如下数据Column--------1122521122621122821122121122221122442我需要在模式Hive中找到那些在MIDDLE中有空格的数字的计数。如果可能的话,请帮我解释一下计数。 最佳答案 使用like和count(*):selectcount(*)fromtwherecolumnlike'%%'; 关于sql-在数据中查找指定模式--Hive,我们在StackOverflow上找到一个类似的问题: https://st

hadoop - 通过第三方工具的 Google Dataproc Hive 实例

这里需要你的帮助。我希望将我的GoogleDataprocHadoop/Hive实例与第三方工具连接起来,并从“ToadforHadoop”开始。这是一个好的选择吗?或者还有其他我可以使用的工具吗? 最佳答案 Dataproc默认运行HiveServer2服务器,如果您在ComputeEngine中适当设置防火墙规则(不要只对来自外部互联网的所有传入连接开放它!将它限制为您自己的IP地址'正在连接),任何第三方工具都可以正常连接。您可以通过云控制台GUI找到主主机名的外部IP地址。查看主节点上的/etc/hive/conf/hive

regex - 如何使用 RegexSerDe 将日志文件加载到 Hive 表中?

我有一个具有以下格式的日志文件,我想从中提取ip、datetime和uri并加载到表中。64.242.88.10--[07/Mar/2004:17:09:01-0800]"GET/twiki/bin/search/Main/SearchResult?scope=text&search=Joris%20*Benschop[^A-Za-z]HTTP/1.1"2004284我可以通过将日志文件行作为单个字符串加载到表中并使用regexp_extract来做到这一点。创建表日志(行字符串);将数据本地inpath'.../mylog.log'加载到表日志中;选择regexp_extract(l

hadoop - Hive 中的 CRUD 操作

我正在尝试在Hive中执行CRUD操作并能够成功运行插入查询,但是当我尝试运行更新和删除时出现以下异常。失败:SemanticException[错误10294]:尝试使用不支持这些操作的事务管理器进行更新或删除。我运行的查询列表CREATETABLEstudents(nameVARCHAR(64),ageINT,gpaDECIMAL(3,2))CLUSTEREDBY(age)INTO2BUCKETSSTOREDASORC;INSERTINTOTABLEstudentsVALUES('fredflintstone',35,1.28),('barneyrubble',32,2.32);C

arrays - Hive Array<Struct<>>插入显示null

我创建了一个包含结构数组的临时表createtabletemp(regionkeysmallint,namestring,commentstring,nationsarray>)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|'COLLECTIONITEMSTERMINATEDBY',';然后我将数据加载到表中LOADDATALOCALINPATH'/DataSets/region.csv'INTOTABLEtemp;什么时候需要的输出select*fromtemp;是4EUROPELowsaleBusinessRegion[{"n_nationkey":2