0

Как заменить одиночные кавычки на двойные кавычки в Scala? У меня есть файл данных с несколькими записями с «abc» (двойные кавычки). Мне нужно заменить эти кавычки одиночными кавычками и преобразовать их в фрейм данных.Scala: Замена двойных кавычек одиночными кавычками

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") 
+1

В какой колонке есть двойные кавычки? какова ваша искра? – mrsrinivas

+0

Я использую искровое ядро ​​1.6.0. Данные в кавычках разбросаны по некоторым данным, имеют кавычки в столбце, а другие нет. – SFatima

+0

Это звучит как проблема, которая может быть проще решить с помощью сценария bash, но вам в основном нужно написать регулярное выражение, которое найдет все двойные кавычки в двойных кавычках (для вашей строки столбца) и заменит их одинарными кавычками. –

ответ

0

Читать построчный файл и применить следующий пример к каждому из них:

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("\"", "'") 

Это даст вам новое строковое значение в кавычки вместо двойных кавычек.

+0

Спасибо за предложение! Как вы можете реализовать это, если используете фрейм данных? Есть ли функция в кадре данных, которая может это позволить? – SFatima

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")) 

Надеется, что это помогает!