我将数据作为Parquet文件从mysql导入hdfs,并在其上构建一个配置单元外部表,但该文件中几乎没有不需要的控制字符,这些字符也被加载到配置单元表中。我需要用一个空字符串替换它们。我试过用Pig,但没有成功。以下是返回问题的Spark代码。
Pypark代码:
sc = spark.sparkContext
# using SQLContext to read parquet file
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
# to read parquet file
df = sqlContext.read.parquet('path-to-file/file.parquet')
df1= df.replace(['\xa0'],[''])
df1.write.parquet('path-to-file/replaced_files')
问题:
unicodedecodeerror utf8编解码器无法确定位置0中的字节0xa0:无效的起始字节
请建议我如何解决这个Spark问题,也让我知道,如果我们可以处理这些控制字符使用Pig或任何其他方式。
提前谢谢。
1条答案
按热度按时间92vpleto1#
如果您使用的是sqoop,请在import命令中使用--query选项,并使用下面的replace语句替换xa0,根据unicode字符集,它是一个char(160)