Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сопоставляет итератор пакетов в текущем кадре данных с помощью собственной функции Python, выполняемой на пандах DataFrames как входных, так и выходных данных, и возвращает результат в виде кадра данных.
Синтаксис
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Параметры
| Параметр | Тип | Описание |
|---|---|---|
func |
function | собственная функция Python принимает итератор pandas.DataFrame и выводит итератор pandas.DataFrame. |
schema |
DataType или str | возвращаемый тип func в PySpark. Значение может быть либо объектом, либо pyspark.sql.types.DataType строкой типа, отформатированным DDL. |
barrier |
bool, необязательный, по умолчанию false | Используйте выполнение режима барьера, гарантируя, что все Python работники на этапе будут запущены одновременно. |
profile |
ResourceProfile, необязательный | Необязательный resourceProfile, используемый для mapInPandas. |
Возвраты
DataFrame
Примеры
df = spark.createDataFrame([(1, 21), (2, 30)], ("id", "age"))
def filter_func(iterator):
for pdf in iterator:
yield pdf[pdf.id == 1]
df.mapInPandas(filter_func, df.schema).show()
# +---+---+
# | id|age|
# +---+---+
# | 1| 21|
# +---+---+
def mean_age(iterator):
for pdf in iterator:
yield pdf.groupby("id").mean().reset_index()
df.mapInPandas(mean_age, "id: bigint, age: double").show()
# +---+----+
# | id| age|
# +---+----+
# | 1|21.0|
# | 2|30.0|
# +---+----+
df.mapInPandas(filter_func, df.schema, barrier=True).collect()
# [Row(id=1, age=21)]