skr*_*nce 3 python apache-commons-dbutils pyspark databricks
所以,我是一个初学者,正在 Databricks 上学习 Spark 编程 (pyspark) -
我想做什么?
列出目录中的所有文件并将其保存到数据框中,以便我能够在此文件列表上应用过滤、排序等。为什么 ?因为我试图找到目录中最大的文件。
为什么下面不起作用? 我缺少什么?
from pyspark.sql.types import StringType
sklist = dbutils.fs.ls(sourceFile)
df = spark.createDataFrame(sklist,StringType())
Run Code Online (Sandbox Code Playgroud)
好吧,实际上,我明白了:)。只是想把问题留在这里,以防有人从中受益。
所以基本上,问题出在模式上。并非列表中的所有元素都是字符串类型。因此,我显式创建了一个架构并在 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)
Run Code Online (Sandbox Code Playgroud)
您不需要设置架构:
df = spark.createDataFrame(dbutils.fs.ls(sourceFile))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10609 次 |
| 最近记录: |