自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Spark如何读取Hive表的分区字段等信息

【代码】Spark如何读取Hive表的分区字段等信息。

2023-07-17 14:20:41 659

原创 Hive insert导致小文件数量问题分析及解决

数据开发过程中经常用到insert into/overwrite table,很多情况下出现了数据倾斜从而导致hdfs上产生了大量的小文件,这对于无论是Spark还是Hive的性能都是毁灭性的打击。本文重点介绍下如何解决 insert 时候导致的产生大量小文件问题,至于其他方式不在此做赘述。

2023-07-17 11:19:41 675

原创 如何用Java和Scala编写Hive的UDF函数:解析Json字符串

UDF函数主要解析存储在Hive中Json格式字符串的,通过参数控制输出Json串的所有的key值或者value值。--UDF函数参数 analyse_hive_json(jsonObj , resultType , splitType) jsonObj String类型,json格式字符串resultType Int 类型,返回结果类型, 0 表示返回 key 串, 1 表示返回 value 串。

2023-03-27 15:58:23 1108 3

原创 Spark 和 hive 如何使用外部jar包中自定义函数UDF、UDAF、UDTF

Spark 和 hive 如何使用外部jar包中自定义函数UDF、UDAF、UDTF

2022-06-09 10:41:31 1695

原创 Spark 用 scala 实现读取 hive 表进行读、写等操作

   spark 目前最常用的场景应该就是对 hive 表进行读写操作 ,尤其通过使用spark sql 实现数据分析、关联等操作  spark sql支持对dataframe(Dataset的特列,DataFrame=Dataset[Row] )进行操作,很多数据分析人员习惯使用python,而python没有dataset,而且sql方式对数据进行批处理方式更为直观。...

2022-05-18 12:11:56 3397 2

原创 hive 的 lateral view用法以及注意事项

1. lateral view 简介  hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积,从而得到明细表。配合UDTF函数使用,一般情况下经常与explode函数搭配,explode的操作对象(列值)是 ARRAY 或者 MAP ,可以通过 split 函数将 String 类型的列值转成 ARRAY 来处理。【语法格式】select col_A,col_B,tmp_table.tmp_col from test_table

2022-05-16 16:00:50 32131 3

原创 提交并执行spark的jar包流程及注意事项

1. 前言  主要是介绍windows环境下提交并执行spark的jar包流程及注意事项,linux环境提交步骤类似且更直观;2. 步骤2.1 打包  我是直接用idea打包,没有用maven。项目根目录右键 -> Open Module Settings -> Artifacts -> 点击+号 -> JAR -> From modules with dependencies -> 在Main Class里面找到本次需要执行的主类 -> 点击OK

2022-02-16 11:50:03 3505

原创 idea无法新建scala类解决办法

1. 问题及背景  用idea新建了一个maven项目,完成了项目的各种配置如maven环境、sdk、jdk等,准备新建一个scala类时,却发现没有这个选项。尝试了各种常用办法都不行,以下三个常用方法确实能够解决绝大部分idea无法新建scala工程的问题:1.在global labrari重新配置sdk的;2.把整个src目录作为source3.把settings下maven的Use plugin registry选项勾选上2. 解决方法  在尝试了多次之后,无奈只好新建一个file,

2022-01-24 09:35:42 5967 5

原创 createOrReplaceTempView原理以及效率优化之cache与persist

1. 前言  在spark程序实际开发过程中遇到需要对文件内容做join操作,使用createOrReplaceTempView 方式将读取的文件创建临时表,然后通过 spark.sql()方式利用sql语句做join操作,但是数据量稍微大点时候,就会导致join效率很慢。查询资料得知,这里有优化的空间,利用 cache() 或者 persist() 方法。2. 原理  createOrReplaceTempView是 transformation 算子,而transformation是lazy模式

2022-01-17 14:49:31 7863 2

原创 ElasticSearch入门篇(3):Java API开发

  此文是ElasticSearch入门的第三篇,主要介绍下ES的Java API开发。1. 环境准备JDK :1.8ES :7.15.2(es的客户端版本要和本地部署的服务端版本保持一致)IDEA:2020.1  新建一个maven项目,导入如下的pom文件 <dependencies> <dependency> <!--es的客户端版本与服务端版本保持一致--> <groupId&gt

2021-11-23 15:53:32 1492

原创 ElasticSearch入门篇(2):DSL开发(增删改查、插入数据)

  上一篇分享了如何在windows下搭建了一个分布式ES集群,这一篇来入门下DSL开发。  ES支持JSON格式的查询,叫做DSL(domain specific language)。  常用数据类型:text、keyword、number、array、range、boolean、date、geo_point、ip、nested、object类型注释text默认会进行分词,支持模糊查询(5.x之后版本string类型已废弃,请大家使用text)keyword不进行分词;

2021-11-23 14:09:17 3991 2

原创 ElasticSearch入门篇(1):windows环境搭建ES集群

  近期在学习ElasticSearch,便在windows下搭建了一个分布式集群,练习一些常用的DSL(类似于SQL)和Java API。1. 安装包下载  官方网址:https://www.elastic.co/cn/downloads/ ES下载地址:https://www.elastic.co/cn/downloads/elasticsearchKibana下载地址:https://www.elastic.co/cn/downloads/kibana  下载windows版本的安装包,我本

2021-11-23 10:43:15 3065 2

原创 【UIAutomator2】实现微信自动加好友功能

  【写在前头:此博客是基于有一定的python知识基础编写的,仅用于个人学习使用,并非产品】  开发思路:在实现微信自动加好友,并不是用的微信官方提供的api接口,是模拟点击手机屏幕操作。需要准备好:一部安卓手机、python环境、UIAutomator2、weditor 。1)安卓手机:无特殊要求,能正常使用的安卓手机即可2)python环境:python3(习惯用anaconda来管理python版本)3)UIAutomator2:是一个可以使用Python对Android设备进行UI自动化的

2021-09-18 12:32:24 4335 3

原创 spark使用withColumn在dataFrame中增加一列、多列,配合cache函数一起使用

  在开发spark应用过程中需要往hive表中造测试数据,同时造多列数据,部分列之间存在逻辑计算关系,正常情况下使用.withColumn(“col_name”,conditions),此时conditions可以直接是类似于 col(“column_a”) * col(“column_b”) ,也可以是udf函数。例如: 如果我们需要使用table_1关联table_2,得到column_a和column_b,且需要新增两列column_c和column_d,计算条件如下:column_c =

2021-09-13 15:57:23 6550

原创 spark基于dataFrame和sparksql对hdfs文件夹下多个文件进行读、写、join等操作

  本文主要介绍spark读取hdfs文件,并利用spark-sql进行join操作,最后将结果写入hdfs文件系统,话不多说,直接上代码。1,准备数据文件math.txtsports.txt2,代码实现package com.zero.scala.sparkCoreimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.{Da

2021-08-31 11:20:49 3028

原创 hive left [outer] join、full [outer] join注意事项

  在两表关联时候(加不加outer对结果无影响),关联时候需要注意on和where两个关键字后面的条件,这里针对left [outer] join和full [outer] join做下说明,希望能帮到您。文章目录left [outer] join时候的on与wherefull [outer] join时候的on与whereleft [outer] join时候的on与where  左表的独立条件(例如:日期分区)要放在where中,右表的独立条件(例如:日期分区)可以放在on中-- 左表独立条件

2021-08-13 16:26:48 837

原创 spark的join代码实战(sparkcore和sparksql)

  在学习spark批处理的时候,join是最常规的操作,本文主要是通过使用spark core和spark sql两种方式实现join操作  spark官方推荐spark sql,因为spark sql支持对dataframe(Dataset的特列,DataFrame=Dataset[Row] )进行操作,很多数据分析人员习惯使用python,而python没有dataset,而且sql方式对数据进行批处理方式更为直观。@[TOC](spark core方式)package com.zero.s

2021-08-11 10:01:55 398

原创 Spark与jdbc连接Postgre库(scala代码实现)

在开发spark过程中,遇到需要连接postgres库的场景,可以通过原生的jdbc去连接,也可以使用spark直连。1.scala 原生jdbc连接下面是 通过DriverManager连接pgtry{// 将用户名密码加入propertiesval conn_prop = new Properties()conn_prop.put("user","xxxx")conn_prop.put("password","xxxx")//pg库的连接串:'xxxx'是库名val conn_ur.

2021-07-27 17:45:42 1774 2

原创 Spark与MapReduce的对比(区别)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档从以下几个方面来对比下spark与MapReduce一、架构二、速度三、容错四、功能一、架构Spark采用的是经典的scheduler/workers模式, 每个Spark应用程序运行的第一步是构建一个可重用的资源池,然后在这个资源池里运行所有的ShuffleMapTask和ReduceTaskMapReduce采用了多进程模型,而Spark采用了多线程模型。多进程模型便于细粒度控制每个任务占用的资源,但会消耗较多的启动时间,不适合

2020-09-30 21:53:47 2713

原创 SparkStreamig流计算,统计一段时间内的单词计数scala和Spark sql实现

SparkStreamig流计算,统计一段时间内的单词计数scala和sql实现原生scala的RDD算子实现Spark sql实现运行前准备,安装netcat原生scala的RDD算子实现package com.zero.demoimport org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSessionimport org.apache.spark.streaming.{Seconds, StreamingContext}

2020-09-26 15:46:12 282

原创 剖析 Spark Shuffle 原理

剖析 Spark Shuffle 原理,主要从两个层面讲解 Shuffle,主要分为:逻辑层面 物理层面逻辑层面主要从 RDD 的血统机制出发,从 DAG 的角度来介绍 Shuffle,另外也会介绍Spark 容错机制,而物理层面是从执行角度来剖析 Shuffle 是如何发生的。RDD 血缘与 Spark 容错在 DAG 中,最初的 RDD 被称为基础 RDD,后续生成的 RDD 都是由算子以及依赖关系生成的,也就是说,无论哪个 RDD 出现问题,都可以由这种依赖关系重新计算而成。这种依赖关系

2020-09-22 19:17:15 165 1

原创 Java使用sqoop连接Postgre库的参数注意事项

sqoop的jar包连接Postgre库的参数注意事项全网仅此一家参数:scheme的使用连接Postgre库的代码示例另外我自己修改了sqoop的jar包全网仅此一家参数:scheme的使用sqoop的一些通用参数在此就不介绍了,很多地方都有详细介绍,本文只介绍一些我个人在使用sqoop工具包遇到的问题:怎么加上scheme参数连接Postgre库的代码示例// 将HDFS文件导入到P...

2019-06-01 18:05:28 679

空空如也

空空如也

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

TA关注的人

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