как суммировать столбец CSV-файла с помощью python - PullRequest
0 голосов
/ 13 октября 2018

Я новичок в спарк, и у меня есть некоторые данные для работы, я хочу суммировать общее количество столбца в файле CSV, заголовок файла: ([colmun1], [colmun2], [colmun3]), я пытаюсь вычислить сумму column3 согласно column1 , (column1 представляет дату, column2 представляет категорию, column3 возникновение одной из категорийв эту дату, поэтому я хочу рассчитать сумму всех категорий для каждой даты), я попробовал этот код:

    from pyspark import SparkContext, SparkConf
    if __name__ == "__main__":
        conf = SparkConf().setAppName("sum").setMaster("local[3]")
        sc = SparkContext(conf = conf)
        line.split(",")).map(lambda line: (line[0:1]+line[3:4]))
        text_file = sc.textFile("in/fileinput.CSV")
        counts = text_file.flatMap(lambda line: line.split(",")) \
             .map(lambda line: (line[0:1],line[2:3])) \
             .reduceByKey(lambda a, b: a + b)
        counts.saveAsTextFile("out/fileoutput.txt")

заранее спасибо (извините за мой английский)

1 Ответ

0 голосов
/ 13 октября 2018

Пожалуйста, попробуйте следующие шаги для достижения желаемого результата.

  1. Считайте файл CSV как Dataframe.

    df = spark.read.csv ("path_to_csv_file",header = True, inferSchema = True)

  2. Группировать по данным на основе столбца 1.

    group_df = df.groupBy ("Column_1")

  3. Взять сумму 3-го столбца сгруппированных данных

    result_df = group_df.agg (sum ("column_3"). Alias ​​("SUM"))

  4. Отображение данных result_df.show ()

Надеюсь, это поможет.

Примечание: для получения дополнительной информации о функции CSV см. Ссылку ниже.https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrameReader.csv

С уважением,

Neeraj

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