草庐IT

表分区

全部标签

hadoop - Hive 从带分区的文件创建表

我遇到了一个我无法完全理解的奇怪的HIVE行为。我真的希望有人能对这件事有所了解。我正在使用以下脚本创建表并将数据添加到表中:DROPTABLEmyTbl;CREATEEXTERNALTABLEmyTbl(Col1string,Col2string,Col3string,Col4string,)PARTITIONEDBY(partitionSTRING)LOCATION'${hiveconf:Valid_location_on_aws_s3_with_the_proper_file_to_create_table}';Hive运行脚本返回OK但(这就是问题所在)表是空的。运行:sele

hadoop - 如何从 pyspark rdd 或分区确定原始 s3 输入文件名

我正在使用pyspark流式处理来自S3的ETL输入文件。我需要能够建立所有原始输入文件的审计线索在s3://上,我的Parquet输出在hdfs://上结束。给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能确定s3中输入数据的原始文件名?目前我知道的唯一方法是采取rdd.toDebugString()并尝试解析它。然而,这感觉真的很hacky并且不在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用我也在做(使用sc.TextFile("s3://...foo/*")样式的glob)。有没有人有确定原始文件名的明智方法?似乎其他一些spark用户过去

sql - 如何动态地从配置单元表中删除分区?

我是hive的新手。有人可以帮我解决这个要求吗?我的需求是动态删除分区。我有一个结果不同区域的SQL(SQL如下:在ALTERTABLEFROM之后)。现在我想删除由我的SQL返回的区域(在我的配置单元表中分区)。我尝试了以下方法:ALTERTABLEPARTITION(region=tab.region)FROMselecttab.regionfrom(SELECT*fromTable1)tabjoin(selectfilenamefromTable2)tab1ontab1.filename=tab.filename它抛出以下异常:'1:21:13[ALTER-0row(s),0.0

sql - 像另一个一样创建一个配置单元表,但按键分区

在Hive中,我想用另一个表的列创建一个表,但用其中一个列对其进行分区。那可能吗?理想情况下,我想执行这样的操作:CREATETABLEifnotexistsnew_tableLIKEold_tablePARTITIONEDBY(col1int)现在它没有运行,因为我似乎无法在使用like子句后添加partitionedby。我正在寻找替代方案,因为我正在尝试编写一个通用函数,而不必专门解析或硬编码架构。 最佳答案 我想不出一种在一个查询中以通用方式执行此操作的方法。我最终使用describeold_table读取了模式,创建了带有

arrays - 如何在 hadoop 分区程序中定义数组

我是hadoop和mapreduce编程的新手,不知道我应该做什么。我想在hadoop分区程序中定义一个int数组。我想在主函数中感受这个数组并在分区程序中使用它的内容。我曾尝试使用IntWritable及其数组,但它们都不起作用。我尝试使用IntArrayWritable但还是没有用。如果有人帮助我,我会很高兴。非常感谢publicstaticIntWritableh=newIntWritable[1];publicstaticvoidmain(String[]args)throwsException{h[0]=newIntWritable(1);}publicstaticclass

sql - Hive 分区性能

想问一下Hive的分区性能。要查看分区性能,我需要多少条记录(以行计)?目前,我有超过200万条记录,我已将表拆分为2个分区。我的分区条件如下:ADDPARTITION(year_month=’2017_07’)ADDPARTITION(year_month=’2017_08’)INSERTOVERWRITETABLETPARTITION(year_month='2017_07')SELECT*FROMTWHEREst_timeINSERTOVERWRITETABLETPARTITION(year_month='2017_08')SELECT*FROMTWHEREst_time>='2

hadoop - s3 上的 Spark Dataset Parquet 分区创建临时文件夹

Spark(version=2.2.0)没有DirectParquetOutputCommitter。作为替代方案,我可以使用dataset.option("mapreduce.fileoutputcommitter.algorithm.version","2")//magichere.parquet("s3a://...")避免在S3上创建_temporary文件夹。一切正常,直到我将partitionBy设置为我的数据集dataset.partitionBy("a","b").option("mapreduce.fileoutputcommitter.algorithm.versi

hadoop - 创建 Hive 分区表前需要遵循的规则

作为我要求的一部分,我必须创建一个新的Hive表并以编程方式插入其中。为此,我使用以下DDL来创建Hive表:CREATEEXTERNALTABLEIFNOTEXISTScountData(tableNameString,ssnString,hiveCountString,sapCountString,countDifferenceString,percentDifferenceString,sap_UpdTmsString,hive_UpdTmsString)COMMENT'Thistablecontainsrecordcountofcorrespondingtablesofallt

bash - Hive 使用 HIVE CONCATENATE 合并所有分区

我有一个配置单元外部表,在源系统上分区,这意味着数据将来自多个源系统。数据目录结构为:/app/hadoop/MyProject/SchemaName/TableName/PartitionColumn=SoruceSystem1/app/hadoop/MyProject/SchemaName/TableName/PartitionColumn=SoruceSystem2/app/hadoop/MyProject/SchemaName/TableName/PartitionColumn=SoruceSystem3.../app/hadoop/MyProject/SchemaName/T

scala - 如何对 RDD 进行分区

我有一个文本文件,其中包含大量由空格分隔的随机浮点值。我正在将此文件加载到Scala中的RDD中。这个RDD是如何分区的?此外,是否有任何方法可以生成自定义分区,以便所有分区具有相同数量的元素以及每个分区的索引?valdRDD=sc.textFile("hdfs://master:54310/Data/input*")keyval=dRDD.map(x=>process(x.trim().split('').map(_.toDouble),query_norm,m,r))我在这里从HDFS加载多个文本文件,进程是我调用的函数。我可以使用mapPartitonsWithIndex解决方案