spark dataframe 新增列
2017-01-17 00:00
239 查看
往往对df增加列是比较常见的操作,df合并,转rdd之类的操作
有下面几种方式:
1、如果增加的列是基于df列的变化
2、以UDF方式增加
有下面几种方式:
import org.apache.spark.sql.functions._
1、如果增加的列是基于df列的变化
//新增一列以oldColName * 2 为新列,$"oldColName" 相当于 col("oldColName") df.withColumn("newColName", $"oldColName"*2)
2、以UDF方式增加
val cmsUrlPatten = """(^http[s]?://.+_)[0-9]+\.(shtml|html){1}.*""".r def url2cms(url: String): String = { val tagUrl = url.split("\\?")(0) if (cmsUrlPatten.findAllIn(tagUrl).isEmpty) url else { val cmsUrlPatten(urlPre, urlEnd) = tagUrl s"${urlPre}1.$urlEnd" } } val sqlfunc = udf((arg: String) => url2cms(arg)) trafficDF.withColumn("cmsUrl", sqlfunc($"url"))
相关文章推荐
- spark dataFrame 新增一列函数withColumn
- spark dataframe新增列的处理
- spark使用udf给dataFrame新增列
- Spark:DataFrame批量导入Hbase的两种方式(HFile、Hive)
- spark RDD Dataset DataFrame
- Spark DataFrame 的 groupBy vs groupByKey
- spark 1.3.0 将dataframe数据写入Hive分区表
- sparkSQL学习记录DATAFrame操作
- 一起学spark(12)-- 关于RDD和DataFrame 的缓存
- Spark DataFrame中基于List的排序UDF
- spark dataframe 类型转换
- 通过例子学习spark dataframe -- transformations函数(2)
- spark 将dataframe数据写入Hive分区表
- Spark SQL DataFrame/Dataset介绍
- Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset问题的分析与解决
- Spark新年福音:一个用于大规模数据科学的API——DataFrame
- Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset
- Spark DataFrame与RDD互操作
- [Spark][Python]DataFrame where 操作例子
- Spark RDD/DataFrame map保存数据的两种方式