自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行走的树

一头飞翔的菜鸟

  • 博客(109)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spark常用算子详解汇总 : 实战案例、Java版本、Scala版本

Spark算子[01]:foreach,foreachPartition Spark算子[02]:coalesce,repartition Spark算子[03]:mapPartitions,mapPartitionsWithIndex 源码实战案例分析 Spark算子[04]:map,flatMap,mapToPair,flatMapToPair Spar

2017-12-18 19:07:08 2654

原创 Hive中常用SerDe介绍

SerDe 是Serializer 和 Deserializer 的简称。它是 Hive用来处理记录并且将它们映射到 Hive 表中的字段数据类型。

2022-07-04 22:55:32 3364 1

原创 tez和spark常用参数调优

1、tez参数2、spark参数3、spark小文件解决思路:

2022-06-22 11:30:06 1187

原创 maven Java错误: 找不到或无法加载主类

错误: 找不到或无法加载主类

2022-06-20 19:44:47 2642

原创 解决: Java Maven项目中的Scala类混编编译错误

1、问题描述:Java Maven项目中调用Scala类GpsParserNew,编译是出现错误Tuple11 tuple11 = com.vdian.utils.GpsParserNew$.MODULE$.getAddressWithTownVillage(res);报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on pr

2022-01-14 13:49:13 1030

转载 为什么HDFS文件块(block)大小设定为128M

我们在HDFS中存储数据是以块(block)的形式存放在DataNode中的,块(block)的大小可以通过设置dfs.blocksize来实现;在Hadoop2.x的版本中,文件块的默认大小是128M,老版本中默认是64M;寻址时间:HDFS中找到目标文件块(block)所需要的时间。原理:文件块越大,寻址时间越短,但磁盘传输时间越长;文件块越小,寻址时间越长,但磁盘传输时间越短。一、为什么HDFS中块(block)不能设置太大,也不能设置太小?如果块设置过大,一方面,从磁盘传输数

2021-12-13 17:03:53 6176

原创 Hive - 自定义UDF - HttpClient依赖冲突

1、报错信息:# FAILED: SemanticException [Error 10014]: Line 2:22 Wrong arguments '"蔡徐坤asda EXO"': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public static java.lang.String GetStarKeyWord.evaluate(java.lang.String) on

2021-06-16 20:12:27 1010 2

原创 hive - udf - regexp_extract - 使用注意点

hive - udf - regexp_extract - 使用注意点hive函数:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF1、匹配不上返回的是 ‘’ 空,而非null

2021-05-30 17:39:03 502 1

转载 Python模块subprocess

Python中可以执行shell命令的相关模块和函数有:os.systemos.spawn*os.popen*          --废弃popen2.*           --废弃commands.*      --废弃,3.x中被移除import commandsresult = commands.getoutput('cmd')result = commands.getstatus(...

2018-06-28 16:01:28 1151

转载 linux下配置安装python3

一、首先,官网下载python3的所需版本。wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz想下载到那个文件夹下就先进入到那个文件夹下——cd /home/download二、然后,解压缩文件》tar -xvf Python-3.6.0.tgz三、创建安装文件的路径。mkdir /usr/local/python3四、编译。...

2018-06-24 07:22:30 416

原创 linux下mysql中文乱码(中文问号)解决办法

安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 : 1、数据库目录,其所创建的数据库文件都在...

2018-06-01 10:45:43 21368 6

原创 Hive创建表时添加中文注释后乱码问题

创建数据表时我们经验会添加一些中文注释到表里面方便识别,最近在测试hive的时候,发现添在Hive创建表时添加COMMENT时的中文注释就会出现乱码,如下:解压思路:1、查看存放Hive元数据信息的数据库表字符集;是否因为字符集问题可以看出,由于表使用的是默认的latin1字符集,所以中文显示不出来,应该使用utf8;但是很奇怪,我整个Mysql都是使用utf8的字符集;所以这个与Mysql的配置...

2018-06-01 10:37:26 18179 2

原创 Linux shell 执行命令 echo是否包含换行符的问题

Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题echo $ret 和 echo "$ret" 区别:如果是echo $ret,输出结果为一行,没有换行符如果是echo "$ret",输出结果为多行,有换行符-------------------------------------------------------------------...

2018-05-30 11:46:30 6655 1

转载 HIVE中get_json_object与json_tuple使用

hive中提供了两种针对json数据格式解析的函数,即get_json_object(…)与json_tuple(…),理论不多说,直接上效果示意图:假设存在如下json数据对象,若使用hive环境可这么设置:set hivevar:msg={"message":"2015/12/08 09:14:4", "client": "10.108.24.253", "server": "passp.

2018-05-10 18:58:01 2005

原创 hive1.1 启动异常 :Caused by: MetaException(message:Version information not found in metastore. )

配置完成Mysql存储元数据信息,启动异常:Caused by: MetaException(message:Version information not found in metastore.Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiat

2018-04-10 19:33:02 3866

转载 Spark面对OOM问题的解决方法及优化总结

Spark中的OOM问题不外乎以下两种情况map执行中内存溢出shuffle后内存溢出    map执行中内存溢出代表了所有map类型的操作,包括:flatMap,filter,mapPatitions等。shuffle后内存溢出的shuffle操作包括join,reduceByKey,repartition等操作。后面先总结一下我对Spark内存模型的理解,再总结各种OOM的情况相对应的解决办法和

2018-03-28 16:58:04 1000

原创 编译Spark2.+ 、Hadoop CDH 版本

参考官方文档:http://spark.apache.org/docs/latest/building-spark.htmlSpark2.2+移除了对hadoop2.5的支持!!!一、 Spark-2.1.2 编译环境准备1、hadoop-2.5.0-cdh5.3.6 2、安装并配置好Maven(本次编译使用apache maven 3.3.9) 3、 安装并配置JDK(本次编译使...

2018-01-11 19:42:04 1683

转载 hive表的存储格式 : ORC格式的使用

hive表的源文件存储格式有几类:1、TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -cat 查看2、SEQUENCEFILE 一种Hadoop API提供的二进制文件,使用方便、可分割、可压缩等特点。 SEQUENCEFILE将数据以< key,value>的形式序列化到文件中。序列化和反序

2018-01-03 16:28:55 7579 1

转载 Hive学习之抽样(tablesample)

当数据量特别大时,对全体数据进行处理存在困难时,抽样就显得尤其重要了。抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。Hive支持桶表抽样和块抽样,下面分别学习。所谓桶表指的是在创建表时使用CLUSTERED BY子句创建了桶的表。桶表抽样的语法如下:table_sample: TABLESAMPLE (BUCKET x OUT

2018-01-03 15:41:03 15923 2

原创 SparkSQL 之 基于Java实现UDF和UDAF详解

UDF源码:最多传入参数为22个//传入两个参数def register(name: String, f: UDF2[_, _, _], returnType: DataType): Unit = { val func = f.asInstanceOf[UDF2[Any, Any, Any]].call(_: Any, _: Any) functionRegistry.registerFu

2017-12-27 17:11:28 7869

原创 SparkSQL 之 RDD转为DataSet的两种方式

DataFrame可以从结构化文件、hive表、外部数据库以及现有的RDD加载构建得到。这里主要针对从现有的RDD来构建DataFrame进行实践与解析。 Spark SQL支持将现有的RDDs转换为DataSet的两种不同的方法。 第一种方法是使用反射来推断包含特定对象类型的RDD的模式。在写Spark程序的同时,已经知道了模式,这种基于反射的方法可以使代码更简洁并且程序工作得更好。第二种方

2017-12-27 10:54:54 8314

转载 Spark RDD、DataFrame和DataSet的区别

RDD优点: 编译时类型安全 编译时就能检查出类型错误 面向对象的编程风格 直接通过类名点的方式来操作数据缺点: 序列化和反序列化的性能开销 无论是集群间的通信, 还是IO操作都需要对对象的结构和数据进行序列化和反序列化. GC的性能开销 频繁的创建和销毁对象, 势必会增加GCimport org.apache.spark.sql.SQLContext

2017-12-23 11:34:37 378

原创 Spark 2.x 自定义累加器AccumulatorV2的使用

废除Spark2.x之后,之前的的accumulator被废除,用AccumulatorV2代替;更新增加创建并注册一个long accumulator, 从“0”开始,用“add”累加 def longAccumulator(name: String): LongAccumulator = { val acc = new LongAccumulator register(acc,

2017-12-21 18:03:52 6145

转载 使用git将项目上传到github(最简单方法)

使用git将项目上传到github(最简单方法) 首先你需要一个github账号,所有还没有的话先去注册吧!https://github.com/我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:https://git-for-windows.github.io/1.进入Github首页,点击New repository新建一个项目 2.

2017-12-21 15:12:37 236

转载 Spark将数据写入Hbase以及从Hbase读取数据

本文将介绍1、spark如何利用saveAsHadoopDataset和saveAsNewAPIHadoopDataset将RDD写入hbase2、spark从hbase中读取数据并转化为RDD操作方式为在eclipse本地运行spark连接到远程的hbase。java版本:1.7.0scala版本:2.10.4zookeeper版本:3.4.5(禁用了hbase自带zoo

2017-12-20 18:28:39 5266

原创 Spark算子[20]:saveAsHadoopDataset、saveAsNewAPIHadoopDataset 实例详解

概要saveAsHadoopDataset:使用旧的Hadoop API将RDD输出到任何Hadoop支持的存储系统,为该存储系统使用Hadoop JobConf 对象。JobConf设置一个OutputFormat和任何需要的输出路径(如要写入的表名),就像为Hadoop MapReduce作业配置的那样。saveAsNewAPIHadoopDataset:使用新

2017-12-20 17:27:19 6463 2

原创 Spark算子[19]:saveAsHadoopFile、saveAsNewAPIHadoopFile 源码实例详解

saveAsHadoopFile、saveAsNewAPIHadoopFile两个算子来源于PairRDDFunctions。saveAsHadoopFilesaveAsHadoopFile是将RDD存储在HDFS上的文件中,支持老版本Hadoop API。 可以指定outputKeyClass、outputValueClass以及压缩格式。 每个分区输出一个文件。源码/** saveAsHad

2017-12-20 16:18:37 13053 1

原创 shell日期处理:给定日期推周几日期、求上周周几日期

说明:根据给定时间,求出本周周一日期:DATE="20171219"i=$((`date -d $DATE +"%w"`-1))date -d "$DATE -$i days" +"%Y%m%d"shell中date参数[leen@leen ~]$ date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhm

2017-12-19 12:34:43 2383 1

原创 Spark算子[18]:saveAsTextFile、saveAsObjectFile 源码实例详解

1、saveAsTextFile将此RDD保存为一个压缩文本文件,使用元素的字符串表示形式。第一个参数:Path为保存的路径; 第二个参数:codec为压缩编码格式;从源码中可以看到,saveAsTextFile函数是依赖于saveAsHadoopFile函数,由于saveAsHadoopFile函数接受PairRDD,所以在saveAsTextFile函数中利用rddToPairRDDFunct

2017-12-19 12:26:29 7697

转载 Spark算子[17]:zip、zipPartitions、zipWithIndex、zipWithUniqueId 实例详解

zip def zip[U](other: RDD[U])(implicit arg0: ClassTag[U]): RDD[(T, U)]zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。scala> var rdd1 = sc.makeRDD(1 to 5,2)scala> var rdd2 =

2017-12-18 16:38:26 1849

转载 Spark算子[16]:subtractByKey、join、rightOuterJoin、leftOuterJoin 实例详解

subtractByKeydef subtractByKey[W](other: RDD[(K, W)])(implicit arg0: ClassTag[W]): RDD[(K, V)]def subtractByKey[W](other: RDD[(K, W)], numPartitions: Int)(implicit arg0: ClassTag[W]): RDD[(K, V)]def su

2017-12-16 12:33:02 1214

原创 Spark算子[15]:sample、takeSample 源码实例详解

sample返回一个RDD[T]源码:/** * 返回此RDD的抽样子集。 * @note 这并不能保证提供的只是给定[[RDD]]的分数。 */def sample( withReplacement: Boolean, fraction: Double, seed: Long = Utils.random.nextLong): RDD[T] = { requir

2017-12-16 11:03:00 21822

原创 Spark算子[14]:top、takeOrdered 源码实例详解

takeOrdered源码/** * 从指定的RDD中返回前k个(最小)元素的集合,底层排序,和top相反。 * * @note 该方法仅在预期的数组很小的情况下使用,因为所有的数据都被加载到驱动程序的内存中。 */def takeOrdered(num: Int)(implicit ord: Ordering[T]): Array[T] = withScope { if (num ==

2017-12-15 17:11:26 1591

原创 Spark Java sortByKey二次排序及Task not serializable异常

相比于scala,用java写二次排序较繁琐一些,请参考: Spark Java 二次排序:http://blog.csdn.net/leen0304/article/details/78280282 Spark Scala 二次排序: http://blog.csdn.net/leen0304/article/details/78280282下边用sortByKey实现二次排序: 为了说明问

2017-12-15 11:22:32 1302

原创 Spark算子[13]:sortByKey、sortBy、二次排序 源码实例详解

sortBy是对标准的RDD进行排序。[在scala语言中,RDD与PairRDD没有太严格的界限]。 sortByKey函数是对PairRDD进行排序,也就是有Key和Value的RDD。sortBy源码 /** * RDD.scala * Return this RDD sorted by the given key function. */ def sortBy[K]

2017-12-14 16:33:13 3480

转载 星型模型和雪花型模型比较

一、概述在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型,如图 1 。星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一...

2017-12-14 09:32:08 426

原创 Spark算子[12]:groupByKey、cogroup、join、lookup 源码实例详解

groupByKey源码/** * 将RDD的每个key的values分组为一个单独的序列,并且每个组内的元素的排序不定 * * @note groupByKey很消耗资源,如果要对每个Key的values进行聚合(比如求和或平均值), * 用 `aggregateByKey`或者`reduceByKey` 代替,将会更节省性能。 * * @note 在当前实现的情况下,groupByK

2017-12-13 16:25:44 1288

转载 Spark算子[11]:reduce、aggregate、fold 详解

以上三个方法操作都是对RDD进行的聚合操作。1、reduce()与fold()方法是对同种元素类型数据的RDD进行操作,即必须同构。其返回值返回一个同样类型的新元素。val nums = Array(1,2,3,4,5,6,7,8,9)val numsRdd = sc.parallelize(nums,3)val reduce = numsRdd.reduce((a,b) => a+b)2、fo

2017-12-13 12:15:10 2898 1

原创 Spark算子[10]:foldByKey、fold 源码实例详解

foldByKey与aggregateByKey,fold与aggregate用法相近,作用相似! foldByKey是aggregateByKey的简化,fold是aggregate的简化。foldByKey源码 /** * 使用关联函数合并每个K的values 并且一个中立的 "zero value" 将被添加到结果中【任意次数】(分区数决定), * 并且不能改变结果:

2017-12-13 11:05:27 1772

原创 Spark算子[09]:aggregateByKey、aggregate详解

aggregateByKeyaggregateByKey的用法同combineByKey,针对combineByKey的三个参数: createCombiner: V => C,mergeValue: (C, V) => C,mergeCombiners: (C, C) => C将createCombiner: V => C替换成一个初始值 C ,相当于aggregateByKey的三个参数为

2017-12-11 23:21:55 1587

2022年最新手机号段/手机号码归属地数据-494273条

2022年最新手机号段/手机号码归属地数据-494273条。手机号前7位对应省市。样例: "代码";"号段";"省区";"城市";"服务商";"区号";"邮编";"区划代码" "130";"1300000";"山东";"济南";"中国联通";"0531";"250000";"370100" "130";"1300001";"江苏";"常州";"中国联通";"0519";"213000";"320400" "130";"1300002";"安徽";"合肥";"中国联通";"0551";"230000";"340100" "130";"1300003";"四川";"宜宾";"中国联通";"0831";"644000";"511500" "175";"1755990";"江苏";"苏州";"中国联通";"0512";"215000";"320500" "187";"1872604";"安徽";"马鞍山";"中国移动";"0555";"243000";"340500" "199";"1999958";"新疆";"喀什";"中国电信";"0998";"844000";"653100"

2022-09-16

最新手机号段 归属地 CSV (2021年9月 手机7位归属地47.2w)

手机号段 - 省份 - 城市

2021-09-29

hadoop-lzo-0.4.13.jar

hadoop-lzo-0.4.13.jar 依赖包 hadoop-lzo-0.4.13.jar 依赖包 hadoop-lzo-0.4.13.jar 依赖包

2017-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除