
Spark
文章平均质量分 50
楓尘林间
计算机爱好者
展开
-
Linux下修改jar包中的配置文件application.conf
Linux下修改jar包中的配置文件application.conf原创 2023-09-11 10:37:16 · 753 阅读 · 0 评论 -
spark读写hdfs
无原创 2022-10-27 10:20:16 · 321 阅读 · 0 评论 -
spark利用EsSparkSQL读写ES
spark读写ES原创 2022-10-26 18:28:25 · 541 阅读 · 0 评论 -
scala spark dataframe 时间加减
无原创 2022-10-25 18:19:04 · 1962 阅读 · 0 评论 -
scala Word2VecModel导入报错
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}import org.apache.spark.sql.{DataFrame, Row, SparkSession}model 保存:参考:http://spark.apache.org/docs/2.3.4/api/scala/index.html#org.apache.spark.mllib.feature.Word2VecModelvar model = Word2V原创 2021-09-26 16:17:00 · 262 阅读 · 0 评论 -
scala 中的 break
scala 中的 break需要导入类import scala.util.control.Breaks.{break, breakable}breakable { for((account, prob)<-accountDistribution){ addProb += prob if(addProb>=randomDouble){ firstAccount = account break }}}否则 直接使用 break 会报错!!!...原创 2021-09-23 19:15:29 · 503 阅读 · 0 评论 -
scala和java 获取当前文件所在的相对路径和绝对路径
原理上都是调用了java.io.File 包只不过由于scala语法与java语法有些差别javaimport java.io.FileFile directory = new File("");//设定为当前文件夹System.out.println(directory.getCanonicalPath());//获取标准的路径System.out.println(directory.getAbsolutePath());//获取绝对路径scalaimport java.io.原创 2021-05-10 11:44:13 · 2906 阅读 · 0 评论 -
scala 中的flatMap和map
网上很多分析flatMap和Map的不同,找几个还不错的,在加上自己的理解:参考1 https://www.jianshu.com/p/c64f278a9902map操作val lineArray = Array("hello you","hello me","hello world")val lines = sc.parallelize(lineArray, 1)val words = lines.map(line =>{ line.split(" ") })words.for原创 2021-04-19 20:29:42 · 953 阅读 · 0 评论 -
spark DataFrame使用collection()方法和groupBy()、isDefined
collect()把 dataframe格式转化为 Array[Row]格式以movieLens数据前7行位例userdata.show()部分数据展示:+------+-------+------+----------+|userId|movieId|rating| timestamp|+------+-------+------+----------+| 1| 2| 3.5|1112486027|| 1| 29| 3.5|111248467原创 2021-04-19 17:17:26 · 1461 阅读 · 0 评论 -
[转]SparkSQL中DataFrame的getAs和getString函数解析
JSON数据{"name":"Michael","age":10, "adress": "beijin"}{"name":"Andy", "age":30, "adress": "beijin"}{"name":"Justin", "age":19, "adress": "beijin"}getAs函数peopleDF.map(x => x.getAs[String]("adress")).show()//运行结果+------+| value|+------+|beijin|转载 2021-04-19 15:59:33 · 1395 阅读 · 0 评论 -
scala中的排序sortBy和map例子
API接口点击一直不会用sortBy,都是用sortWith,今天偶然看到一个sortBy的写法,觉得很高级,分享一下 var ll = List[(String, Int, Int)](("a",1, 400),("b",3, 600),("m",3, 100),("c",2, 40)) println(ll) var a = ll.map{case Tuple3(name:String, age:Int, salary:Int)=>(name,age, salary)原创 2021-04-16 18:02:39 · 1315 阅读 · 0 评论 -
spark dataframe的时间类型和String类型转化
https://www.cnblogs.com/mylittlecabin/p/11692363.htmlhttps://stackoverflow.com/questions/40763796/convert-date-from-string-to-date-format-in-dataframeshttps://www.nuomiphp.com/eplan/29850.html原创 2021-01-07 18:22:26 · 20617 阅读 · 1 评论 -
Caused by: java.sql.SQLException: ORA-01861: literal does not match format string
利用Spark 链接oracle数据库 通过sq提取数据操作时,报错:Caused by: java.sql.SQLException: ORA-01861: literal does not match format string字面意思是格式不匹配查了一下使用的sql语句:select b.* , to_char(to_date(b.START_TIME, 'yyyy-mm-dd HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') as START_TIME_TMP原创 2020-12-28 17:11:09 · 1462 阅读 · 0 评论 -
Spark和Java的日期格式
SimpleDateFormat 类如果使用 DateFormat 类格式化日期/时间并不能满足要求,那么就需要使用 DateFormat 类的子类——SimpleDateFormat。SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期→文本)、解析(文本→日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期/时间格式的模式。SimpleDateFormat 类主要有如下 3 种构造方法。SimpleDateF原创 2020-12-22 14:25:41 · 328 阅读 · 0 评论 -
spark shell 提交作业 直接报错 java.lang.NullPointerException
利用spark-shell提交任务时,利用args传入参数,结果报错:java.lang.NullPointerException且stdout和stderr都没有报错日志:引起原因:传入参数有空值(null)原创 2020-11-16 17:28:05 · 680 阅读 · 0 评论 -
Scala获取当前时间
import java.text.SimpleDateFormatimport java.util.Date def NowDate(): String = { val now: Date = new Date() val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") val date = dateFormat.format(now) return date }原创 2020-10-26 15:57:48 · 2233 阅读 · 0 评论 -
spark sql 查询hive表是否存在
利用 show tables in DBname like ‘TABLEname’ 语句var userid = "test"var datasetid1 = "dm_op_log"var datasetid2 = "bb"var s = spark.sql(s"show tables in $userid like '$datasetid1' ")s.show()println("@@@@", s.count())var s2 = spark.sql(s"show tables.原创 2020-10-22 17:46:36 · 3803 阅读 · 0 评论 -
spark的配置文件
1. spark-defaults.confspark/conf下spark.eventLog.enabled true 是否记录Spark事件spark.eventLog.dir hdfs://hadoop-master:9000/user/directory 保存日志相关信息的路径,可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建spark.master sp原创 2020-09-16 17:07:55 · 2972 阅读 · 0 评论 -
Spark sql 利用COALESCE()函数full join 两张DataFrame
我们经常使用spark时会对表合并import spark.implicits._import spark.implicits._var data1 = Seq( | ("1", "ming", "hlj"), | ("2", "tian", "jl"), | ("3", "wang", "ln"), | ("4", "qi", "bj"), | ("5", "sun", "tj") | ).toDF("useid", "name", "live") var data原创 2020-08-19 15:27:11 · 2259 阅读 · 0 评论 -
spark读写相同路径文件
有些情况下,需要spark读取A路径文件,处理后再存入A路径,如不注意,会报错!!!1.读写相同的HIVE表spark读取hive表: // 原始数据 final_data = spark.sql(s"select * from ${userid}.${datasetid}") .....对数据操作..... 不能 select 后在overwrite同一张表:错误的: Spark报错final_data.write.mode("overwr原创 2020-08-18 17:24:29 · 1385 阅读 · 1 评论 -
spark通过jdbc方法连接数据库
jdbc()方法Spark SQL支持数据源使用JDBC从其他数据库读取数据。 与使用JdbcRDD相比,应优先使用此功能。 这是因为结果以DataFrame的形式返回,并且可以轻松地在Spark SQL中进行处理或与其他数据源合并。 JDBC数据源也更易于从Java或Python使用,因为它不需要用户提供ClassTag。 (请注意,这与Spark SQL JDBC服务器不同,后者允许其他应用程序使用Spark SQL运行查询)。该方法位于 : org.apache.spark.sql中的 Data原创 2020-08-18 15:03:01 · 4693 阅读 · 1 评论 -
Spark的DataFrame存储的Mode模式选择
spark的dataframe存储中都会调用write的mode方法:data.write.mode(“append”).saveAsTable(s"userid.{userid}.userid.{datasetid}")data.write.mode(SaveMode.Overwrite).parquet(hdfspath)但不同时候的参数是不同的先看一下源码:spark-v2.3.0: def mode(saveMode: SaveMode): DataFrameWriter[T]原创 2020-08-13 17:38:21 · 7304 阅读 · 0 评论 -
Spark机器学习中的常用算法特征重要性筛选FeatureScore
1 logisticRegression2 randomforest3 xgboosthttps://stackoverflow.com/questions/62769574/spark-xgboost4j-how-to-get-feature-importancehttps://cloud.tencent.com/developer/ask/216071原创 2020-08-06 19:06:20 · 2883 阅读 · 0 评论 -
Spark对两个列数不一致DataFrame进行上下拼接
之前已经在博客中介绍了spark的dataframe利用union 等一系列方法进行拼接,详情请见Spark中对Dataframe的union 、unionAll和 unionByName方法说明但是在那篇博客也提到,利用union的这些方法,必须保证两个dataframe必须列数一致(unionByName方法还需要所有列名必须一致)。那么如果如果dfA和dfB的列长度不一致,应该怎么去上下拼接呢?val data2 = Seq( | ("1", null, "hlj", null),原创 2020-08-04 10:24:49 · 3277 阅读 · 0 评论 -
spark中DataFrame存在空值是否计算情况说明
一直有个疑问,出现空值数据列,在计算时,是否会被计算?1. 空值出现在计算字段中给定某个DataFrame,其中包含空值:val data1 = Seq( | ("1", "ming", "hlj", null), | ("2", "tian", "jl", "1"), | ("3", "ming", "hg", "1"), | ("4", "tian", "bj", "1"), | ("5", "ming", "tj", "1") | ).toDF("useid", "name"原创 2020-08-03 18:24:21 · 2680 阅读 · 0 评论 -
[转载]spark中ml与mllib 的区别
1 关于Spark ML1.1 定义spark机器学习,对的对象:DataFrame。1.2 对象主要操作的是DataFrame。其中taFrame是Dataset的子集,也就是Dataset[Row]。DataSet是对RDD的封装,对SQL之类的操作做了很多优化。2 关于Spark MlLib1.1 定义MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习具有可扩展性和容易性。在高水平上,它提供了以下工具: A、ML算法:常用的学习算法,如分类,回归,聚类和协同过滤转载 2020-07-31 17:14:17 · 342 阅读 · 0 评论 -
[转]Spark如何设置不打印INFO日志
方法1:在配置文件中修改cd $SPARK_HOME/conf ## 查看是否存在 log4j.properties## 如果没有,则cp log4j.properties.template log4j.propertiesvi log4j.properties##然后,修改下面的这一个行:log4j.rootCategory=INFO, console##改成:log4j.rootCategory=WARN, console或者(按个人需求)log4j.rootCateg转载 2020-07-23 10:30:15 · 6722 阅读 · 1 评论 -
spark2.x读取csv文件乱码问题
由于spark读取csv时,默认编码格式是utf-8,如果csv文件的格式是其他,需要加上编码格式的设定例:如果csv格式为GBKimport org.apache.spark.sql.SparkSessionval spark = SparkSession.builder().appName(“demo”).getOrCreate();如果用默认格式utf-8读取:var data = spark.read.option("header", false).option("delimiter",原创 2020-07-16 17:26:05 · 2789 阅读 · 0 评论 -
不用IDEA读取parquent文件的两种方式
1.命令行输入spark-shell2. 创建sparkSessionimport org.apache.spark.sql.SparkSessionval spark = SparkSession.builder().appName(“demo”).getOrCreate();3. 读取parquent数据var sessi = spark.read.load("/aaa/bbb/output_pt");sessi.show(5);其中output是一个文件夹,里面有多个pa原创 2020-07-13 16:30:45 · 661 阅读 · 0 评论 -
scala将UTC时间格式化
import java.text.SimpleDateFormat def transformDateUTC(str1:String)={ var str3 = str1 val format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") val format2 = new SimpleDateFormat("yyyyMMddHHmmss") var date = format1.parse(str3.原创 2020-07-10 17:45:43 · 495 阅读 · 0 评论 -
由 cannot resolve ‘`a.stuID`‘ given input columns: [a.stuID, a.zhuanID, b.stuID, b.zhuanID]错误引发的思考
利用sparksql对两张表进行join,报错:检查表中字段:发现两张表内都存在stuID。折腾了好久也没弄好,后来不甘心,将数据转为txt格式,没想到同样的代码***跑通了***。这可太amazing了,打开两个文档反复对比了一下。并没有什么不同,直到身边的大神让我查看一下文件的编码才发现端倪:## 预览文件head -n 1 xxx.txt | od -clinux 下的od命令可以查看 这篇博客结果显示:发现csv文件的第一行第一列开头比txt多了三个字符,原因就在这:再次原创 2020-07-08 19:20:20 · 9770 阅读 · 1 评论 -
Scala保留字符串中的大小写字母和数字
import scala.util.matching.Regexvar s = "23423523sar#$%79HSAFA!#*qwer"val pattern = """[0-9A-Za-z]""".rprintln((pattern findAllIn s).mkString(",")) 逗号连接,生成String// println((pattern findAllIn s toList) 变为list// println((pattern findFirstIn s toLis原创 2020-06-12 17:53:54 · 1119 阅读 · 0 评论 -
Scala中Char类型与Int类型互相转化
Char类型与Int类型互相转化toChar和toInt方法def funCharToInt(ch: Char) = { ch + 0 // 或者 // ch.toInt }def funIntToChar(x:Int) = { x.toChar}funIntToChar(funCharToInt('郭'))拓展1: 字符串脱敏var q = "网名"def hypose(q:String)={ var s = "" for (i &原创 2020-06-11 11:11:56 · 1285 阅读 · 0 评论 -
Spark中读取/写入mysql数据库
mysqlvar row_data = spark.read.jdbc(url, table, predicates, prop)函数:jdbcdef jdbc(url : scala.Predef.String, table : scala.Predef.String, predicates : scala.Arr原创 2020-06-10 11:42:10 · 2143 阅读 · 1 评论 -
Spark dataframe某一列转化为Array
首先,必须保证列没有空值,如果有,则需要drop$colName 为 列名data = data.na.drop(s"$colName")输出格式为ArrayAnydata0.select(s"$cname").collect().map(_(0))变为String或Double需要定义函数 // 类型转换为String def ToString(s:Any):Strin...原创 2020-04-19 18:07:56 · 8423 阅读 · 2 评论 -
Spark生成(创建)dataframe的三种方式
方法一由于Spark中构造Dataframe 即使是数值类型的数据 也需要以String形式进行创建,var data = Seq( ("0.1","0"), ("0.15","0"), ("0.8","1"), ("1.0","1")).toDF("predict","label")+-------+-----+|predict|label|+-------+-----+|...原创 2020-04-15 11:21:55 · 581 阅读 · 0 评论 -
Spark DataFrame转化为RDD[Vector],应用于KMeans聚类,monotonically_increasing_id()方法进行结果合并
将DataFrame转化为RDD[Vector],应用于KMeans聚类模型训练import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.rdd.RDD import org.apache.spark.mllib.clustering.{KMeans, KMeansModel}import org.apac...原创 2020-03-30 18:50:49 · 2142 阅读 · 3 评论 -
Spark sql 单引号'' 使用问题
spark sql中单引号意味着要某个变量所代表的值如var q = 111spark.sql(s"select '$q' as t").show()+---+| t|+---+|111|+---+去掉单引号spark.sql(s"select $q as t").show()+---+| t|+---+|111|+---+两者在该情境下是...原创 2020-03-27 16:37:57 · 3493 阅读 · 0 评论 -
Spark scala中将Array(Row)转化为DataFrame(另一种抽样方式)
1.spark DataFrame常规的采样方式——sample()由于scala中 对DataFrame 方式为 sample() 方法sample : 采样采样变换根据给定的随机种子,从RDD中随机地按指定比例选一部分记录,创建新的RDD。采样变换 在机器学习中可用于进行交叉验证。语法def sample(withReplacement: Boolean, fraction: Do...原创 2020-03-20 14:10:03 · 8088 阅读 · 0 评论 -
Spark Dataframe 按某一行排序新加一列index
1.Dataframe按某一行排序新加一列index (index不重复)import spark.implicits._import spark.implicits._var data2 = Seq( ("0", "2002", "196", "1", "bai"), ("1", "4004", "192", "2", "wang"), ("0", "7007", "95...原创 2020-03-19 20:44:21 · 1930 阅读 · 0 评论