使用方括号可以安全地对pyspark数据框中的列进行子集化和/或重新排序吗?

时间:2019-07-19 18:51:45

标签: dataframe pyspark apache-spark-sql pyspark-sql databricks

我是pyspark数据帧的新手,并希望确保自己没有犯一个愚蠢的错误(我已经因为使用.union而不是.unionByName而感到筋疲力尽,所以我不想重复相似!)

是否可以使用方括号对pyspark数据框列进行重新排序和子集化?通过四处查看,似乎可以使用双方括号的pandas-esque方法对pyspark数据框中的列进行子集和重新排序。例如:


# Create pandas dataframe to convert to pyspark dataframe
singers = {'ID': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},
         'Name': {0: 'Maria Callas', 1: 'Tito Gobbi', 2: 'Giuseppe Di Stefano', 3: 'Rolando Panerai', 4: 'Luigi Alva'},
         'Fach': {0: 'Soprano', 1: 'Baritone', 2: 'Tenor', 3: 'Baritone', 4: 'Tenor'},
         'Place of Birth': {0: 'USA', 1: 'Italy', 2: 'Italy', 3: 'Italy', 4: 'Peru'}}

singers_pd = pd.DataFrame(singers, columns=singers.keys())

# Create pyspark dataframe
singers_sparkDF = spark.createDataFrame(singers_pd)

# Subsetting using [[]] seems to work!
singers_sparkDF[['Fach', 'Place of Birth']].show()

# Reordering using [[]] seems to work!
singers_sparkDF[['ID', 'Name', 'Fach', 'Place of Birth']].show()

在这个不是一个好主意的地方,我是否缺少某些东西,应该使用.select或其他方法进行子集和重新排序?

0 个答案:

没有答案