读取Spark 1.6中的编码值引发错误

时间:2019-09-20 10:11:06

标签: scala apache-spark apache-spark-sql apache-spark-1.6

我正在从API接收文件,该文件在3列中具有已编码(非ascii)字符值。 当我在Spark1.6中使用DataFrame读取文件时

val CleanData= sqlContext.sql("""SELECT
                                               COL1
                                               COL2,
                                               COL3
                                               FROM CLEANFRAME
                                               """ )

编码值如下所示。

enter image description here

但是编码值看起来像

53004,����������������������������

如果使用spark 1.6和scala的possiblw,请有人帮助我如何解决此错误。 Spark 1.6, 斯卡拉

1 个答案:

答案 0 :(得分:0)

#this ca be achieved by using the regex_replace
    val df = spark.sparkContext.parallelize(List(("503004","d$üíõ$F|'.h*Ë!øì=(.î;      ,.¡|®!®","3-2-704"))).toDF("col1","col2","col3")
    df.withColumn("col2_new", regexp_replace($"col2", "[^a-zA-Z]", "")).show()    
Output:
+------+--------------------+-------+--------+
|  col1|                col2|   col3|col2_new|
+------+--------------------+-------+--------+
|503004|d$üíõ$F|'.h*Ë!øì=...|3-2-704|     dFh|
+------+--------------------+-------+--------+