Spark имеет похожую функцию explode()
, но она не полностью идентична.
Вот как работает взрыв на очень высоком уровне.
>>> from pyspark.sql.functions import explode,col
>>> data = {'A': [1, 2]}
>>> df = spark.createDataFrame(data)
>>> df.show()
+------+
| A|
+------+
|[1, 2]|
+------+
>>> df.select(explode(col('A')).alias('normalized')).show()
+----------+
|normalized|
+----------+
| 1|
| 2|
+----------+
С другой стороны, вы могли бы преобразовать Spark DataFrame в Pandas DataFrame, используя:
spark_df.toPandas()
-> использовать json_normalize (), а затем вернуться обратно в Spark DataFrame.
Чтобы вернуться обратно в Spark DataFrame, вы должны использовать spark.createDataFrame(pandas_df)
.
Обратите внимание, что это решение туда-обратно не идеально, так как вызывает Pandas () , приводит к тому, что все записи DataFrame будут собраны (.collect ()) в драйвер и может привести к ошибкам памяти при работе с большими наборами данных.
Приведенная ниже ссылка дает более подробные сведения об использовании Pandas (): DF.to pandas () с ошибкой выброса в pyspark
Надеюсь, это поможет и хорошо удачи!