将字符串分割成对应的列

编程语言 2026-07-09

我正在尝试读取日志文件,并使用Databricks和 Python将数据拆分为多列。目前到目前为止,我已经能够将字符串拆分成数组格式,但还无法把它们放入列中。比如:类型、日期、时间、备注

内容
INFO 2025-10-10 08:01:23启动Spark应用程序
WARN 2025-10-10 08:02:01内存使用率很高:75%
ERROR 2025-10-10 08:03:05分区3 的任务失败
from pyspark.sql.functions import split

df_split = (
    df.select(split('content', r' ', 0).alias('row'))
)

df_split.select('row').display()
[INFO, 2025-10-10, 08:01:23, 启动, Spark, 应用程序]
[WARN, 2025-10-10, 08:02:01, 内存, 使用, 是, 高:, 75%]
[ERROR, 2025-10-10, 08:03:05, 任务, 失败, 于, 分区, 3]

我需要把它显示为以下格式:

类型 日期 时间 备注
INFO 2025-10-10 08:01:23 启动Spark应用程序
WARN 2025-10-10 08:02:01 内存使用率很高:75%
ERROR 2025-10-10 08:03:05 分区3 的任务失败

解决方案

First, use the split function to split the content column into arrays of length 4.

Then, use list comprehensions to dynamically generate the select expression.

from pyspark.sql import functions as F

df = df.select(F.split('content', ' ', 4).alias('row'))
cols = ['type', 'date', 'time', 'comments']
col_expr = [F.col('row').getItem(i).alias(c) for i, c in enumerate(cols)]
df = df.select(*col_expr)
df.show()
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章