无法读取 UTF-16 文件

Unable to read UTF-16 file

我正在尝试读取 Spark 数据帧中编码为 UTF-16 的文件。但是,当我显示数据框的结果时,我的结果集中出现不需要的特殊字符。

我尝试了以下 - 使用 UTF-16BE:

df = spark.read.format('text').option("encoding", 'UTF-16BE').option("charset", 'UTF-16').option('delimiter', "\|").option('header', 'false').option("quote", "\"").option("escape", "\"").load(filepath)

并使用 UTF-16LE 尝试了以下操作:

df = spark.read.format('text').option("encoding", 'UTF-16LE').option("charset", 'UTF-16').option('delimiter', "\|").option('header', 'false').option("quote", "\"").option("escape", "\"").load(filepath)

两者都尝试 return 不需要的特殊字符。

非常感谢任何帮助。

我想你想使用 csv instead of text,因为 text 格式不支持你尝试使用的选项。尝试:

df = spark.read.format("csv")\
    .option("encoding", "UTF-16")\
    .option('sep', "|")\
    .option("escape", "\"")\
    .load(filepath)

请注意,选项 header 的默认值为 false,因此无需指定,quote 也是如此。另外,没有选项charset,你只需要encoding选项。

您可以在此处找到每个数据源的所有可用选项:DataFrameReader