从 Databricks 中的 dbutils.fs.ls 输出创建数据框
Posted
技术标签:
【中文标题】从 Databricks 中的 dbutils.fs.ls 输出创建数据框【英文标题】:Create a dataframe out of dbutils.fs.ls output in Databricks 【发布时间】:2021-05-15 21:11:44 【问题描述】:所以,我是初学者,正在 Databricks 上学习 spark 编程 (pyspark) -
我想做什么?
列出目录中的所有文件并将其保存到数据框中,以便我能够在此文件列表上应用过滤器、排序等。为什么 ?因为我试图在我的目录中找到最大的文件。
为什么下面不起作用? 我错过了什么?
从 pyspark.sql.types 导入字符串类型
sklist = dbutils.fs.ls(sourceFile)
df = spark.createDataFrame(sklist,StringType())
【问题讨论】:
【参考方案1】:好吧,实际上,我想通了 :)。只是想把问题留在这里,以防有人从中受益。
所以基本上,问题出在架构上。并非列表中的所有元素都是字符串类型。所以我明确地创建了一个模式并在 createDataFrame 函数中使用它。
工作代码 -
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
ddlSchema = StructType([
StructField('path',StringType()),
StructField('name',StringType()),
StructField('size',IntegerType())
])
sklist = dbutils.fs.ls(sourceFile)
df = spark.createDataFrame(sklist,ddlSchema)
【讨论】:
以上是关于从 Databricks 中的 dbutils.fs.ls 输出创建数据框的主要内容,如果未能解决你的问题,请参考以下文章
如何修复从 cosmos db 中的 databricks scala 读取流中的“错误:未找到:键入 CosmosDBSourceProvider”
从 Databricks 将日志推送到 Log Analytics