数据块之外的 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 是不是有另一种/类似的方法?的主要内容,如果未能解决你的问题,请参考以下文章

Json 文件正在数据块中显示 [重复]

在数据块上加载 XML 文件 Pyspark

在数据块中加载增量表特定分区的最佳实践是啥?

Spark数据框加入问题

如何从 spark sql databricks 中的临时视图或等效视图中删除?

限制 spark.read pyspark 的分区数