PySpark: использование существующей схемы Spark DataFrame в новом Spark DataFrame - PullRequest
0 голосов
/ 27 апреля 2020

В Python у меня есть существующий Spark DataFrame, который включает 135 ~ столбцов, называемых sc_df1. У меня также есть Pandas DataFrame с точно такими же столбцами, которые я хочу преобразовать в Spark DataFrame, а затем unionByName два Spark DataFrames. то есть, sc_df1.unionByName(sc_df2).

Кто-нибудь знает, как использовать схему sc_df1 при преобразовании Pandas DataFrame в Spark DataFrame, так что два Spark DataFrames будут иметь одну и ту же схему при объединении?

Я знаю, что это не работает, но вот, по сути, то, что я пытаюсь сделать:

sc_df2 = sc.createDataFrame(df2, schema = sc_df1.dtypes)

1 Ответ

1 голос
/ 27 апреля 2020

Используйте spark.createDataFrame(), передав pandas_dataframe со схемой из sc_df1 фрейма данных.

Example:

df=spark.createDataFrame([("a",1),("b",2)],["id","name"])

#converting to pandas df
pandas_df=df.toPandas()

print(type(pandas_df))
#<class 'pandas.core.frame.DataFrame'>

#converting back to pysparkdf by passing df schema
spark_df=spark.createDataFrame(pandas_df,schema=df.schema)

print(type(spark_df))
#<class 'pyspark.sql.dataframe.DataFrame'>

spark_df.show()
#+---+----+
#| id|name|
#+---+----+
#|  a|   1|
#|  b|   2|
#+---+----+


#union both dataframes
df.union(spark_df).show()
#+---+----+
#| id|name|
#+---+----+
#|  a|   1|
#|  b|   2|
#|  a|   1|
#|  b|   2|
#+---+----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...