【发布时间】:2017-12-01 20:44:47
【问题描述】:
我正在将数据从 MySQL 作为 parquet 文件导入 hdfs 并在其上构建一个 hive 外部表,但该文件中几乎没有不需要的控制字符也被加载到 hive 表中。我需要用空字符串替换那些。我试过猪,但没有运气。以下是返回问题的火花代码。
PYSPARK 代码:
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:无效起始字节
请建议我如何解决这个火花问题,并让我知道我们是否可以使用 PIG 或任何其他方式处理这些控制字符。
提前致谢。
【问题讨论】:
-
如何将数据传输到 HDFS。你在使用 SQOOP 吗?如果是这样,您可以考虑在 SQOOP 脚本中替换这些?
-
是的!我正在通过 sqoop 导入数据。我们如何在 sqoop 脚本中替换?
标签: apache-spark hive apache-pig parquet