数据块之外的 spark.read.format.load 是不是有另一种/类似的方法?
Posted
技术标签:
【中文标题】数据块之外的 spark.read.format.load 是不是有另一种/类似的方法?【英文标题】:Is there another/similiar method for sparks.read.format.load outisde of databricks?数据块之外的 spark.read.format.load 是否有另一种/类似的方法? 【发布时间】:2019-06-07 14:53:33 【问题描述】:我正在尝试将 avro 文件加载到 sparks 数据帧中,以便将其转换为 pandas 并最终转换为字典。我要使用的方法:
df = spark.read.format("avro").load(avro_file_in_memory)
(注意:我试图加载到数据帧中的 avro 文件数据已经在内存中,作为来自 python 请求的请求响应的响应)
但是,此函数使用 databricks 环境的原生 sparks,我没有在该环境中工作(我查看了 pysparks 以获取类似的函数/代码,但我自己看不到任何东西)。
我可以在数据块之外使用任何类似的功能来产生相同的结果吗?
【问题讨论】:
【参考方案1】:Databricks 库是开源的,但实际上是在 2.4 中添加到核心 Spark(尽管仍然是外部库)
无论如何,有一个原生的 avro Python 库和 fastavro,所以我不完全确定你是否想启动一个 JVM(因为你使用的是 Spark),只是将 Avro 数据加载到一本字典。除此之外,一个 Avro 文件由多条记录组成,因此它至少是一个字典列表
基本上,我认为您最好使用上一个问题中的方法,但首先将 Avro 数据写入磁盘,因为这似乎是您当前的问题
否则,也许更多地搜索您正在寻找的东西会解决您遇到的 XY problem 问题
https://github.com/ynqa/pandavro
【讨论】:
以上是关于数据块之外的 spark.read.format.load 是不是有另一种/类似的方法?的主要内容,如果未能解决你的问题,请参考以下文章