草庐IT

Spark-Hive

全部标签

linux - 转瞬即逝 + hive : CLUSTERED TABLE

我在HIVE中有聚簇表。所有查询都在hive-client中工作。但是我不能用这个表运行任何查询:Query...failed:Hivetableiscorrupt.Itisdeclaredasbeingbucketed,butthefilesdonotmatchthebucketingdeclaration.Thenumberoffilesinthedirectory(0)doesnotmatchthedeclaredbucketcount(8)forpartition:在设置hive.enforce.bucketing=true;之后错误:Query...failed:Hiveta

sql - 在 Hive SQL 中,使用分区键基于另一个表中的列创建表

我想根据现有表中的列创建一个新表,在配置单元中添加一个新的分区列。我想在hivesql中实现这个目标。除了下面的sql或者使用kettle之类的ETL工具还有没有别的办法createtableifnotexiststable_name(col1,col2,col3,……,coln)partitionedbydt;其中col1到coln来自已经存在的旧表,dt是新添加的partitionkey。因为旧表太大,可能有几百列,罗列出来会很累。但是,下面的sql显示语法错误:createtableifnotexiststable_namelikeolder_table_namepartitio

hadoop - 如何从 hive 或 impala 读取 Hbase 当前和以前版本的数据?

我想从Hive或Impala读取Hbase当前和以前版本的数据。在我最初的研究中,我发现只能从Hive访问当前版本。那么,目前有什么方法可以从hive或Impala中检索旧版本吗? 最佳答案 在Hive的情况下:请看this似乎不可能在Hive中获得同一单元格的不同版本(即使Hbase具有同一单元格的多个版本),它总是返回具有最新时间戳的单元格。我相信我们可以从战术上解决这个问题。我们可以将以前的版本附加到Hbase行键或者作为单独的单元格(名称,值)如果是Impala:请看limitations节

hadoop - hive elasticsearch外部表创建

当我在ElasticSearchHandler存储的hive中创建外部表时,它可以正常工作:*CREATETABLEtest(daySTRING,idCustSTRING)STOREDBY'org.elasticsearch.hadoop.hive.EsStorageHandler'TBLPROPERTIES('es.resource'='test/test','es.mapping.names'='day:@timestamp','es.nodes'='localhost');*当我向其中插入数据时,它起作用了但是当我尝试查询它时,出现错误:异常java.io.IOException

hadoop - 文本文件可以直接从 Spark 输出到本地文件系统吗?

使用RDD,我可以输出rdd.saveAsTextFile('directory')将文件保存在hdfs://directory中。文本文件可以直接保存到本地文件系统上的目录(即directory)吗? 最佳答案 当然你可以...因为saveAsTextFile('directory')将保存与你的分区程序一样多的文件,你首先需要在复制到本地之前合并文件(除非你希望将每个文件复制到本地).因此先调用FileUtil.copyMerge(sourceFileSystem,newPath(sourceFullPath),destFile

hadoop - Hive:如果我删除当前正在查询的文件会怎样?

假设我们有一个Hive表作为这样的目录存储在HDFS上:data/|--file1|--file2|--file3如果我对该目录开始长时间查询然后删除其中一个文件会怎样?我可以想到3种情况:文件描述符在开始时打开,数据一直保留到查询结束,即使文件路径不再可用于新查询。Hive会记住文件路径,如果找不到已删除的文件,查询就会失败。Hive不记住文件路径,只接受当前目录中的文件。如果Hive的行为类似于(2),并且在查询期间删除文件是不安全的,从被查询目录中删除旧数据的正确方法是什么? 最佳答案 如@Shankarsh所述,Hive尝试

regex - 文件名的一部分作为 Hive 表中的列

我想将文件名的第一部分作为Hive表中的一列Myfilenameis:20151102114450.46400_Always_1446482638967.xml我在MicrosoftAzure的Hive中使用正则表达式编写了一个查询(查询下方)以获取它的第一部分,即20151102114450但是当我运行查询时,我得到的输出为20151102164358selectCAST(regexp_replace(regexp_replace(regexp_replace(CAST(CAST(regexp_replace(split(INPUT__FILE__NAME,'[_]')[2],'.x

windows - Spark Windows 安装 Java 报错

我继续上一个问题的问题-winutilssparkwindowsinstallation-我知道这个线程-HowtostartSparkapplicationsonWindows(akaWhySparkfailswithNullPointerException)?-,但我还没有找到任何可以解决我的问题的方法。我也知道有人建议使用maven或sbt从源代码构建spark。我还不想这样做,因为很多人不会从源代码构建spark并且它对他们来说很好用。到目前为止,我已经设置了以下环境变量...set_JAVA_OPTIONS=-Xmx512M-Xms512Mset_JAVA_OPTION=-X

database - Spark 中的快速条件加入

我正在尝试使用条件查询在Spark中进行快速扩充。我有两个键/值数据集:“事件数据”和“session映射”。“session映射”用于找出谁在两个时间戳之间使用给定的IP。“事件数据”是大量事件的集合,具有IP和时间戳,需要与“session映射”相关联以丰富用户名。是否有一种有效的方法可以根据Spark中的session映射或其他方式丰富事件数据?sessionmap:(IP,start_time,end_time)->Name(192.168.0.l,2016-01-0110:00:00,2016-01-0122:00:00)->John(192.168.0.l,2016-01-

hadoop - 日期为 23 :59:59 in hive

我必须提取昨天日期从00:00:00到23:59:59结束之间的记录。我得到了昨天的日期如下selectfrom_unixtime(unix_timestamp()-1*60*60*24,'dd-MMM-yy');但是,我不确定如何在配置单元中到达23:59:59。根据thisSO(1岁)回答,使用配置单元UDF是可以实现的。我想知道是否有一种简单的方法,例如使用内置函数来做到这一点。 最佳答案 我们只需要玩玩unixtimeselectfrom_unixtime(datediff(current_date,'1970-01-01'