摘要: 我们知道,scala中Int类型不能为null,而Dataset中表示的Int值的IntegerType类型列却能为null。如果我们想产生一个IntegerType类型列为null的DataFrame该怎么做?下面的代码可以做到:import org.ap... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(2134) 评论(0) 推荐(0) 编辑
摘要: Spark SQL支持用户自定义函数(UDF),我们可以方便的利用udf函数来完成各种数据处理操作。下面例子展示了用UDF功能对一个数据集进行转换操作(将输入df的某列进行处理,将处理结果作为新列附加在新生成的df上):var in = spark.crea... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1531) 评论(0) 推荐(0) 编辑
摘要: DataFrame和parquet文件以下spark表示SparkSession对象df表示DataFrame对象从parquet文件加载DataFrame:val df = spark.read.parquet("input_file_path.parqu... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: 使用数据透视函数pivot:val list = List( (2017, 1, 100), (2017, 1, 50), (2017, 2, 100), (2017, 3, 50), (2018, 2, 200), (2018, 2,... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1484) 评论(0) 推荐(0) 编辑
摘要: groupBy分组和使用agg聚合函数demo:df.show+----+-----+---+|YEAR|MONTH|NUM|+----+-----+---+|2017| 1| 10||2017| 1| 5||2017| 2| 20||2... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(6451) 评论(0) 推荐(0) 编辑
摘要: spark2+引入了SparkSession,封装了1.0的SparkContext和SqlContext。在spark-shell中有个spark变量是默认的SparkSession对象。读取和保存举例:spark表示SparkSession对象ds表示D... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(505) 评论(0) 推荐(0) 编辑
摘要: VectorAssembler将不同的特征列进行组合,成为特征向量列,作为训练学习器的输入列。val df = spark.createDataset(List( (1, "a", 3), (2, "", 4))).toDF("f1", "f2", "... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(953) 评论(0) 推荐(0) 编辑
摘要: 注册:// 创建它的SparkSession对象终止前有效df.createOrReplaceTempView("tempViewName") // spark应用程序终止前有效df.createOrReplaceGlobalTempView("tempV... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1961) 评论(0) 推荐(0) 编辑
摘要: 如下图:首先StreamingContext中设置的间隔秒数(此处为3秒),只是决定了job调度器每隔多久汇总接受器接收到的数据,作为一个批次处理(一个批次即一个rdd)。rdd会放入一个未处理的队列,rdd数据可以是空,即没有真正数据,这时候rdd.cou... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 看这个程序:import org.apache.kafka.common.serialization.StringDeserializerimport org.apache.spark.streaming.kafka010._import org.apach... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 二元转换BinarizerBinarizer是将连续型变量根据某个阈值,转换成二元的分类变量。小于该阈值的转换为0,大于该阈值的转换为1。要求输入列必须是double,int都会报错。如下:输入的是0.1,0.8,0.2连续型变量,要以0.5为阈值来转换成二... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 数据标准化先定义一个dfimport org.apache.spark.ml.linalg.Vectorsval df = spark.createDataFrame(Seq( (0, Vectors.dense(1.0, 0.5, -1.0)), (1... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(1192) 评论(0) 推荐(0) 编辑
摘要: 使用spark-submit往yarn集群提交任务,deploy-mode可以采用client和cluster两种模式。若想使用hive功能,需要满足以下条件:初始化sparkSession对象的时候,指定enableHiveSupport选项;指定hive... 阅读全文
posted @ 2019-01-04 17:25 xuejianbest 阅读(2296) 评论(0) 推荐(0) 编辑
摘要: 代码:val file = "/root/dir/jhzf.properties"val tableName = "spark_timetime"import java.util.Propertiesval properties = new Properti... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(2093) 评论(0) 推荐(0) 编辑
摘要: 两个概念:分区partition分区器partitionerpartitionRDD有个partitions方法:final def partitions: Array[Partition],能够返回一个数组,数组元素是RDD的partition。parti... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(4004) 评论(0) 推荐(1) 编辑
摘要: spark-shell或spark-submit,载入jdbc的jar包:--jars /mysql-connector-java-*-bin.jarspark使用jdbc读写数据库://读数据库import java.util.Propertiesval ... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(756) 评论(0) 推荐(0) 编辑
摘要: spark-shell运行,若要载入hbase的jar包:export SPARK_CLASSPATH=/opt/hbase-1.2.4/lib/*获取hbase中列簇中的列值:import org.apache.spark._import org.apac... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 使用:$spark-submit --helpUsage: spark-submit [options] [app arguments]举例:spark-submit --master yarn-cluster \--class Tkmeans \--co... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(1023) 评论(0) 推荐(0) 编辑
摘要: 本文基于spark-1.6.2-bin-hadoop2.6提交到本地程序中指定的参数(param)和spark-submit提交时参数配置一致:import org.apache.spark.deploy.SparkSubmit;public class D... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(3845) 评论(0) 推荐(0) 编辑
摘要: spark可以不进行任何配置,直接运行,这时候spark像一个java程序一样,是直接运行在VM中的。spark还支持提交任务到YARN管理的集群,称为spark on yarn模式。spark还支持Mesos管理的集群,Mesos和YARN一样都是管理集群... 阅读全文
posted @ 2019-01-04 17:24 xuejianbest 阅读(1295) 评论(0) 推荐(0) 编辑