Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在spark dataframe中为包含的列名加引号_Regex_Scala_Apache Spark_Dataframe - Fatal编程技术网

Regex 在spark dataframe中为包含的列名加引号

Regex 在spark dataframe中为包含的列名加引号,regex,scala,apache-spark,dataframe,Regex,Scala,Apache Spark,Dataframe,我有一个数据框,其中一些列名包含,。从下面开始,第二列名称包含, 现在,我想用“将包含,的列括起来 以下是我的代码: def testWriteDataframeToCSV (): Unit = { val df = generateDF(Array( ("1", "4567-01", "one", 1, 1.0, "1", "1.1"), ("2", "4568-02", "two", 2, 2.0, "2", "2.2"), ("3", "4569

我有一个数据框,其中一些列名包含
。从下面开始,第二列名称包含

现在,我想用
将包含
的列括起来

以下是我的代码:

def testWriteDataframeToCSV (): Unit = {
    val df = generateDF(Array(
      ("1", "4567-01", "one", 1, 1.0, "1", "1.1"),
      ("2", "4568-02", "two", 2, 2.0, "2", "2.2"),
      ("3", "4569-25", "three", 3, 3.0, "3", "3")
    ), Seq("Id", "Course,No", "data1", "data2", "data3", "data4", "data5"))

    val take: Option[Int] = None
    val sample: Option[Float] = None

    val header = df.schema.fieldNames.mkString(",") + "\n"       
  }
当前标题:

header = "Id,Course,No,data1,data2,data3,data4,data5\n"
预期标题:

header = "Id,"Course,No",data1,data2,data3,data4,data5\n"

您只需要找到名称中有
的元素,并相应地添加引号。我使用了Scala的三重引号
s“”
,因此无需在每边转义一个引号:

df.schema.fieldNames.map{ f => if (f.contains(",")) s""""${f}"""" else f }.mkString(",")
//String = Id,"Course,No",data1,data2,data3,data4,data5

您只需要找到名称中有
的元素,并相应地添加引号。我使用了Scala的三重引号
s“”
,因此无需在每边转义一个引号:

df.schema.fieldNames.map{ f => if (f.contains(",")) s""""${f}"""" else f }.mkString(",")
//String = Id,"Course,No",data1,data2,data3,data4,data5