Pyspark.sql.dataframe将每一行的特定列的数据转换为新的数据框

时间:2019-10-23 01:30:04

标签: python dataframe pyspark pyspark-sql pyspark-dataframes

Pyspark.sql.dataframe将每行特定列的数组数据转换为一个新数据框,其中数组数据作为单独的行

我的数据框类型是:

type(df)pyspark.sql.dataframe.DataFrame

它有3列40行。

Columns数据类型如下:

df.dtypes

[('Col1',
  'struct<A:string,B:string,C:string,D:string,E:string>'),
 ('Col2', 'string'),
 ('Col3', 'array<struct<timestamp:bigint,value:double>>')]

提示点:

  1. 我只对每一行的Col3感兴趣。
  2. 总共有40行。
  3. 每一行的Col3列都是一个struct数组。每行的数组大小超过20,000。

问题:

我想将每一行的第三列转换为一个新数据框,该数据框将具有20,000个或更多或更少的行,具体取决于该特定行的第三列的数组大小。

每行的新数据帧将具有两列时间戳和值。

问题

  1. 我不知道如何使用索引获取每一行。如果执行此操作,则可以应用explode()函数,然后将获得一个包含两列时间戳和值的数据框。

  2. 因为我不知道“如何使用索引来获取每一行”,所以我直接在最后一列上应用了explode(),这是我的工作方式,但问题是我会松开第一行的数据结尾,第二行的数据开始等在爆炸数据框中的索引是什么。

请帮助。什么是达到目标的正确方法。

0 个答案:

没有答案