草庐IT

平分分区

全部标签

hadoop - 如何删除 Hive 中的两个分区列之一?

我创建了一个包含两个分区列的配置单元表,例如col1和col2,现在出于某些分析目的,我希望删除col2分区。基本上我希望从分区列列表中删除列-col2,但我不应该丢失col2中的数据。很明显,最终表应仅由col1分区,而col2也应存在于最终分区表中,但作为普通列而不是分区列。请提出前进的方向。 最佳答案 下面是最好的方法之一。只需更新配置单元分区:ALTERTABLEPARTITION(year=2018,month=05)SETLOCATION'hdfs://some/temp/location/tale_name/2018/

apache-spark - Spark 根据字母分区写入 Parquet

我对这个话题做了很多研究。我有一个3TB大小的数据集。以下是该表的数据架构:root|--user:string(nullable=true)|--attributes:array(nullable=true)||--element:string(containsNull=true)每天,我都会得到一份我需要其属性的用户列表。我想知道我是否可以将上述模式写入包含前2个用户字母的Parquet文件。例如,Omkar|[a,b,c,d,e]Mac|[a,b,c,d,e]Zee|[a,b,c,d,e]Kim|[a,b,c,d,e]Kelly|[a,b,c,d,e]在上面的数据集上,我可以做这

hadoop - Sqoop 导出分区的 Hive 表

我在尝试导出分区的Hive表时遇到了一些问题。这是否得到完全支持(我尝试用谷歌搜索并找到了一张JIRA票)?sqoopexport--connectjdbc:mysql://localhost/testdb--tablesales--export-dir/user/hive/warehouse/sales--direct这是我得到的:00000_2,Status:FAILEDjava.io.FileNotFoundException:Filedoesnotexist:/user/hive/warehouse/sales/day=2013-04-01运行hadoopfs-ls/user/

sql - 在 HIVE 中,分区列不是底层保存数据的一部分?

我有一些日志数据,有字段id,tdate,信息我创建了一个动态分区表CREATETABLElog_partitioned(idSTRING,infoSTRING)PARTITIONEDBY(tdateSTRING)然后我正在加载数据FROMlogslgINSERTOVERWRITETABLElog_partitionedPARTITION(tdate)SELECTlg.id,lg.info,lg.tdateDISTRIBUTEBYtdate;正在通过动态分区成功加载数据。但是当我试图查看数据时hdfsdfs-cat/user/hive/warehouse/log_partitioned

hadoop - hadoop中的总订单分区器

我对totalorderpartitioner的概念完全陌生,我已经应用了这个概念,但我没有成功地产生全局排序。这是我的输入记录67657674897685766895768578678576857685786785786757658976857896758796795871个5个6个78个902个3个5个6个9这是我的映射器publicvoidmap(LongWritablekey,Textvalue,OutputCollectoroutputCollector,Reporterreporter)throwsIOException{//TODO自动生成的方法stuboutputCol

java - 使用 -libjars 的 MapReduce 流作业,自定义分区程序失败 : "class not found"

我正在尝试将自定义(java)分区程序附加到我的MapReduce流作业。我正在使用这个命令:../bin/hadoopjar../contrib/streaming/hadoop-streaming-1.2.1.jar\-libjars./NumericPartitioner.jar-Dmapred.map.tasks=12-Dmapred.reduce.tasks=36\-input/input-output/output/keys-mapper"map_threeJoin.py"-reducer"keycount.py"\-partitionernewjoin.NumericPa

java - TotalOrderPartitioner 忽略分区文件位置

我试图用TotalOrderPartitioner做一个简单的排序示例。输入是一个序列文件,以IntWritable为键,以NullWritable为值。我想根据键排序。的输出是一个以IntWritable为键,以NullWritable为值的序列文件。我在集群环境中运行这项工作。这是我的驱动程序类:publicclassSortDriverextendsConfiguredimplementsTool{@Overridepublicintrun(String[]args)throwsException{Configurationconf=this.getConf();Jobjob=J

scala - Spark-scala 如何使用 HDFS 目录分区

为了减少处理时间,我按日期对数据进行分区,以便我只使用所需的日期数据(不是完整的表格)。所以现在在HDFS中,我的表格存储如下src_tbl//maindirtrg_tbl2016-01-01//subdir2015-12-302016-01-022015-12-312016-01-032016-01-012016-01-03现在我想从src_tbl中选择min(date)这将是2016-01-01从trg_tbl我想使用>=2016-01-01(src_tblmin(date))目录中的数据2016-01-01和2016-01-03数据`如何使用Spark-scala从hdfs选择所

sql - 使用一条插入语句在多个分区中插入数据

我有表A和表B,其中B是A使用名为X的字段的分区表。当我想从A向B插入数据时,通常会执行如下语句:INSERTINTOTABLEBPARTITION(X=x)SELECTFROMAWHEREX=x现在我想要实现的是能够插入一系列X,比方说x1、x2、x3...我怎样才能在一个语句中实现这一点? 最佳答案 使用动态分区加载:sethive.exec.dynamic.partition=true;sethive.exec.dynamic.partition.mode=nonstrict;INSERTOVERWRITETABLEtable

java - 为分区程序输出单个文件

尝试获得与键数一样多的reducerpublicclassCustomPartitionerextendsPartitioner{publicintgetPartition(Textkey,Textvalue,intnumReduceTasks){System.out.println("InCustomP");return(key.toString().hashCode())%numReduceTasks;}}驱动类job6.setMapOutputKeyClass(Text.class);job6.setMapOutputValueClass(Text.class);job6.set