簡體   English   中英

在spark數據框中用引號括起包含的列名稱

[英]Enclose quotes for column names that contain , in 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-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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM