无法将aws glue dynamicframe转换为spark dataframe

mbzjlibv  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(464)

我正在尝试使用dynamicframe.todf将glue dynamic frame转换为spark dataframevuvu,但遇到了这个异常
traceback(最近一次调用last):文件“/tmp/manualjob”,第62行,在df1=datasource0.todf()文件“/opt/amazon/lib/python3.6/site packages/awsglue/dynamicframe.py”,第147行,在todf return dataframe(self.\u jdf.todf(self.glue\u ctx.\u jvm.pythonutils.toseq(scala\u options)),self.glue\ctx)file“/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/java\u gateway.py”,第1257行,呼叫应答中,self.gateway\u client,self.target\u id,self.name)file“/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py”,第63行,deco return f(*a,**kw)file“/opt/amazon/spark/py4j-0.10.7-src.zip/py4j/protocol.py”,第328行,以get\u return\u value格式(target\u id,“.”,name),value)py4j.protocol.py4jjavaerror:调用o176.todf时出错:org.apache.spark.sparkexception:作业因阶段失败而中止:阶段15.0中的任务1失败了4次,最近的失败:阶段15.0中的任务1.3丢失(tid 198,172.31.0.175,executor 6):com.amazonaws.services.glue.util.fatalexception:无法解析文件:manual bound.csv
有人能帮我弥补我所缺少的吗?
提前谢谢!

fiei3ece

fiei3ece1#

如果存在非utf-8编码的字符,则会出现此问题。根据本文档,glue仅支持utf-8编码。
基于文本的数据,如csv,必须用utf-8编码,aws glue才能成功地处理它。有关更多信息,请参阅wikipedia中的utf-8。
您可以通过运行下面的命令来验证文件是否包含无效字符,该命令将打印这些字符。这是针对linux的,如果您使用的是其他操作系统,则可以使用等效字符。

iconv -f UTF-8 your_file -o /dev/null; echo $?

要转换为utf-8,可以传递csv to below命令

iconv -f ISO-8859-1 -t UTF-8 file.csv > file-utf8.csv

相关问题