需要替换存储在hdfs中的Parquet文件中的控制字符

qnzebej0  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(373)

我将数据作为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或任何其他方式。
提前谢谢。

92vpleto

92vpleto1#

如果您使用的是sqoop,请在import命令中使用--query选项,并使用下面的replace语句替换xa0,根据unicode字符集,它是一个char(160)

replace(input_string, char(160), ' ')

相关问题