第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pyspark 數(shù)據(jù)框中是否有類似于 pandas.io.json.json_normalize

pyspark 數(shù)據(jù)框中是否有類似于 pandas.io.json.json_normalize

BIG陽 2022-07-05 17:04:47
我想執(zhí)行類似于 pandas.io.json.json_normalize 的操作是 pyspark 數(shù)據(jù)幀。spark中是否有等效功能?https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.io.json.json_normalize.html
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

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 轉(zhuǎn)換為 Pandas DataFrame:


spark_df.toPandas() --> 利用 json_normalize() 然后恢復(fù)為 Spark DataFrame。


要恢復(fù)為 Spark DataFrame,您將使用spark.createDataFrame(pandas_df).


請注意,這種來回的解決方案并不理想,因為調(diào)用 toPandas() 會導(dǎo)致 DataFrame 的所有記錄都被收集 (.collect()) 到驅(qū)動程序,并且在處理更大的數(shù)據(jù)集時可能會導(dǎo)致內(nèi)存錯誤。


下面的鏈接提供了有關(guān)使用 toPandas() 的更多見解: DF.topandas() throwing error in pyspark


希望這會有所幫助,祝你好運!


查看完整回答
反對 回復(fù) 2022-07-05
?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

PySpark中沒有直接對應(yīng)的json_normalize。但 Spark 提供了不同的選擇。如果您在這樣的 Dataframe 中有嵌套對象


one

|_a

|_..

two

|_b

|_..

您可以在 Spark 中選擇子列,如下所示:


import pyspark

from pyspark.sql.session import SparkSession

spark = SparkSession.builder.appName("stackoverflow demo").getOrCreate()

columns = ['id', 'one', 'two']

vals = [

     (1, {"a": False}, {"b": True}),

     (2, {"a": True}, {"b": False})

]

df = spark.createDataFrame(vals, columns)

df.select("one.a", "two.b").show()

+-----+-----+

|    a|    b|

+-----+-----+

|false| true|

| true|false|

+-----+-----+

如果您使用此答案中的遞歸“展平”函數(shù)構(gòu)建所有嵌套列的展平列表,那么我們將得到一個展平列結(jié)構(gòu):


columns = flatten(df.schema)

df.select(columns)


查看完整回答
反對 回復(fù) 2022-07-05
  • 2 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號