我正在从Azure Databricks上的Azure ADLS Gen2存储帐户阅读Kafka json文件。我似乎无法将值二进制负载转换为字符串,以便执行from_json转换。我尝试了各种类型的强制转换,在所有情况下,原始二进制值都显示在最终转换中。
我试过了... df.selectExpr(“CAST(字符串形式的值)”)
以及.df.select(col(“值”).cast(“字符串”))
我知道我在做一些愚蠢的事情,因为这是一个微不足道的转变,但我不知道我做错了什么。
我正在使用Azure数据块运行时11.3 LTS ML
我使用的示例数据是Databricks Academy数据集
我期待上面的代码将其转换为人类可读的字符串格式,但最终转换为'值'是相同的原始二进制。
1条答案
按热度按时间g52tjvyc1#
你所做的是正确的,让它成为一个字符串,但也许数据根本不是一个字符串?也许你的数据是实际上一个编码(base64,也许)/加密的字符串,或二进制负载,如Avro,Protobuf,等,这是人类不可读的。
如果不知道它是如何产生的,就不可能知道如何反序列化它;如果你阅读的是一个
.json
文件,正如你所说,那么Spark不关心文件扩展名...