1

如何在 Scala 中用双引号替换单引号?我有一个数据文件,其中包含一些带有“abc”(双引号)的记录。我需要用单引号替换这些引号并将其转换为数据框。

val customSchema_1 =        
  StructType(Array(
  StructField("ID", StringType, true),
  StructField("KEY", StringType, true),
  StructField("CODE", StringType, true))

val df_1 = sqlContext.read
  .format("com.databricks.spark.csv")
  .option("delimiter", "¦")
  .schema(customSchema_1)
  .load("example")
4

2 回答 2

3

逐行阅读您的文件并将以下示例应用于每个文件:

val text: String = """Here is a lot of text and "quotes" so you may think that everything is ok until you see something "special" or "weird"
"""

text.replaceAll("\"", "'")

这将为您提供一个带有引号而不是双引号的新字符串值。

于 2017-01-03T21:00:23.803 回答
0

您可以创建一个简单的 udf 用单引号替换双引号

这是一个简单的例子

import org.apache.spark.sql.functions.udf

val removeDoubleQuotes = udf( (x:String) => s.replace("\"","'"))

//If df is the dataframe and use the udf to colName to replace " with '

df.withColumn("colName", removeDoubleQuotes($"colName"))

希望这可以帮助!

于 2017-07-08T05:32:14.057 回答