小编Sam*_*eer的帖子

从 PySpark DataFrame 中删除所有 StructType 列

我有一个df读取 JSON 文件的数据框,如下所示:

\n\n
df = spark.read.json("/myfiles/file1.json")\n
Run Code Online (Sandbox Code Playgroud)\n\n

df.dtypes显示以下列和数据类型:

\n\n
\n
id \xe2\x80\x93 string\nName - struct\naddress - struct\nPhone - struct\nstart_date - string\nyears_with_company - int\nhighest_education - string\ndepartment - string\nreporting_hierarchy - struct\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

我只想提取非结构列并创建一个数据框。例如,我生成的数据框应该只有idstart_datehighest_educationdepartment

\n\n

这是我部分工作的代码,因为我只获取department其中填充的最后一个非结构列的值。我想收集所有非结构类型列,然后转换为数据框:

\n\n
names = df.schema.names\n\nfor col_name in names:\n   if isinstance(df.schema[col_name].dataType, StructType):\n      print("Skipping struct column %s "%(col_name))\n   else:\n      df1 = df.select(col_name).collect() \n
Run Code Online (Sandbox Code Playgroud)\n\n

我很确定这可能不是最好的方法,而且我错过了一些我无法确定的东西,所以我将感谢您的帮助。谢谢。

\n

python pyspark

4
推荐指数
1
解决办法
2620
查看次数

标签 统计

pyspark ×1

python ×1