Spark (с python) проблемы с withColumn - PullRequest
2 голосов
/ 13 июля 2020

Я учусь использовать python, и в моем проекте мне особенно нужно использовать искру. (Я уверен в других языках программирования [C ++, Matlab, R])

Я хочу прочитать файл csv, и в качестве первого шага я хотел преобразовать содержимое столбцов (строк) в правильные типы (date, int и double соответственно).

Ниже я написал

from pyspark.sql import SparkSession
from pyspark.sql.functions import udf
from pyspark.sql.types import DoubleType
from pyspark.sql.types import IntegerType
from pyspark.sql.types import DataType

spark = SparkSession.builder.appName("my_spark").getOrCreate()

# DATA PREPROCESSING


A2A_av1=spark.read.format('csv').options(header='true').load('../../Data/A2A_avail.csv')
A2A_av1.printSchema()


A2A_av1.withColumn("SUM_AVAILABLE_", A2A_av1["SUM_AVAILABLE_"].cast(DoubleType()))

A2A_av1.printSchema()

Здесь вывод , ничего не меняется. Столбец SUM_AVAILBELS_ по-прежнему является строкой.

Не могли бы вы сказать мне, что я делаю не так? Заранее спасибо

1 Ответ

1 голос
/ 13 июля 2020

Pyspark не предлагает редактирование на месте, например pandas. поэтому вам нужно присвоить результат, чтобы изменения вступили в силу. Фреймы данных Spark неизменяемы. измените свой код на

A2A_av1=A2A_av1.withColumn("SUM_AVAILABLE_", A2A_av1["SUM_AVAILABLE_"].cast(DoubleType()))

Это должно работать: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...