當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pyspark DataFrame.spark.frame用法及代碼示例


本文簡要介紹 pyspark.pandas.DataFrame.spark.frame 的用法。

用法:

spark.frame(index_col: Union[str, List[str], None] = None) → pyspark.sql.dataframe.DataFrame

將當前的 DataFrame 作為 Spark DataFrame 返回。 DataFrame.spark.frame()DataFrame.to_spark() 的別名。

參數

index_col: str or list of str, optional, default: None

在 Spark 中用於表示 pandas-on-Spark 的索引的列名。 pandas-on-Spark 中的索引名稱被忽略。默認情況下,索引總是丟失。

例子

默認情況下,此方法會丟失索引,如下所示。

>>> df = ps.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
>>> df.to_spark().show()  
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  4|  7|
|  2|  5|  8|
|  3|  6|  9|
+---+---+---+
>>> df = ps.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
>>> df.spark.frame().show()  
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  4|  7|
|  2|  5|  8|
|  3|  6|  9|
+---+---+---+

如果設置了index_col,它將保留指定的索引列。

>>> df.to_spark(index_col="index").show()  
+-----+---+---+---+
|index|  a|  b|  c|
+-----+---+---+---+
|    0|  1|  4|  7|
|    1|  2|  5|  8|
|    2|  3|  6|  9|
+-----+---+---+---+

當您想要調用某些 Spark API 並將其轉換回 pandas-on-Spark DataFrame 而不創建默認索引(這會影響性能)時,保留索引列非常有用。

>>> spark_df = df.to_spark(index_col="index")
>>> spark_df = spark_df.filter("a == 2")
>>> spark_df.to_pandas_on_spark(index_col="index")  
       a  b  c
index
1      2  5  8

如果是多索引,請將列表指定為 index_col

>>> new_df = df.set_index("a", append=True)
>>> new_spark_df = new_df.to_spark(index_col=["index_1", "index_2"])
>>> new_spark_df.show()  
+-------+-------+---+---+
|index_1|index_2|  b|  c|
+-------+-------+---+---+
|      0|      1|  4|  7|
|      1|      2|  5|  8|
|      2|      3|  6|  9|
+-------+-------+---+---+

同樣,可以轉換回pandas-on-Spark DataFrame。

>>> new_spark_df.to_pandas_on_spark(
...     index_col=["index_1", "index_2"])  
                 b  c
index_1 index_2
0       1        4  7
1       2        5  8
2       3        6  9

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.DataFrame.spark.frame。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。