当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。