我们遇到这样一个问题,
1 先生成一个包含所有预置字段的DataFrame(此时的字段名称是英文的)
2 根据传入的条件动态组合字段从1中的大的DataFrame 里 select的到想要的字段
3 但是我想存入的csv文件中要有中文表头
4 遇到的问题是:使用sql 拼接然后as 取别名为中文,会报出不支持
所以想到如下的方法来解决:
package ezr.df.drill
import org.apache.spark.sql.{Column, DataFrame, SparkSession}
import scala.collection.mutable
import org.apache.spark.sql.functions._
/**
* @author liuchangfu@easyretailpro.com
* 2019/12/24.
*/
object SplitDfZhongWen{
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession
.builder()
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.appName("CfItem")
.master("local[*]")
.enableHiveSupport()
.getOrCreate()
import spark.implicits._
/**第一步:的到所有字段的DataFrame*/
val df: DataFrame = Seq(