【问题标题】:Create a dataframe out of dbutils.fs.ls output in Databricks从 Databricks 中的 dbutils.fs.ls 输出创建数据框
【发布时间】:2021-05-15 21:11:44
【问题描述】:

所以,我是初学者,正在 Databricks 上学习 spark 编程 (pyspark) -

我想做什么?

列出目录中的所有文件并将其保存到数据框中,以便我能够在此文件列表上应用过滤器、排序等。为什么 ?因为我试图在我的目录中找到最大的文件。

为什么下面不起作用? 我错过了什么?

从 pyspark.sql.types 导入字符串类型

sklist = dbutils.fs.ls(sourceFile)

df = spark.createDataFrame(sklist,StringType())

【问题讨论】:

    标签: python pyspark databricks apache-commons-dbutils


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2020-12-30
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多