PySpark Чтение CSV()

Pyspark Ctenie Csv



Создание кадра данных PySpark из данных CSV возможно в PySpark с помощью функции read.csv(). В некоторых сценариях, если вы хотите загрузить внешние данные в PySpark DataFrame, PySpark поддерживает множество форматов, таких как JSON, CSV и т. д. В этом руководстве мы увидим, как читать данные CSV и загружать их в PySpark DataFrame. Кроме того, мы обсудим загрузку нескольких файлов CSV в один кадр данных одновременно с примерами.

Pyspark.sql.DataFrameReader.csv()

Этот метод используется для чтения данных из файлов CSV и их сохранения в PySpark DataFrame. Он принимает параметры при чтении CSV в DataFrame. Мы подробно обсудим различные варианты с примерами. При передаче более одного CSV-файла важно передавать имена файлов с расширением в виде списка, разделенного запятой. Если вы читаете только один CSV-файл, нет необходимости указывать имя файла в списке.

Синтаксис:







Один файл — spark_app.read.csv(‘file.csv’, параметры …)

Несколько файлов – spark_app.read.csv([‘file1.csv’,’file2.csv’,…],параметры…)



Также можно разделить параметры и имена файлов.



Отдельный файл – spark_app.read.options(опции…).csv(‘file.csv’)





Несколько файлов – spark_app.read.options(options…).csv([‘file1.csv’,’file2.csv’,…])

Установите библиотеку PySpark перед реализацией следующих примеров.



pip установить pyspark

После успешной установки вы можете увидеть следующий вывод:

Сценарий 1: Чтение заголовка CSV-файла

Давайте создадим CSV-файл с именем «person_skill.csv» с 5 записями, как показано ниже, и загрузим его в PySpark DataFrame:

Параметр заголовка используется для указания имен столбцов в PySpark DataFrame. Он принимает логическое значение. Если это «Истина», фактические имена столбцов, которые существуют в файле CSV, указаны в DataFrame. В противном случае указаны c0, c1, c2…, и фактические имена столбцов будут строкой. Лучше всего установить для параметра заголовка значение true.

Пример 1: Заголовок = Истина

импортировать pyspark

из pyspark.sql импортировать SparkSession

linuxhint_spark_app = SparkSession.builder.appName( «Подсказка по Линукс» ).getOrCreate()

# Загружаем CSV-файл с именем - person_skill.csv в скиллы с метками столбцов с заголовком

навыки = linuxhint_spark_app.read.csv( 'person_skill.csv' , заголовок = Верно)

# Отображение фрейма данных

навыки.шоу()

Выход:

Объяснение:

Мы видим, что PySpark DataFrame создается из файла CSV с указанными столбцами и строками.

Используйте следующую команду для проверки столбцов:

навыки.столбцы

Пример 2: Заголовок = False

импортировать pyspark

из pyspark.sql импортировать SparkSession

linuxhint_spark_app = SparkSession.builder.appName( «Подсказка по Линукс» ).getOrCreate()

# Загружаем CSV-файл с именем - person_skill.csv в скиллы с метками столбцов без заголовка

навыки = linuxhint_spark_app.read.csv( 'person_skill.csv' , заголовок = Ложь)

# Отображение фрейма данных

навыки.шоу()

Выход:

Объяснение:

Мы видим, что PySpark DataFrame создается из файла CSV без существующих столбцов.

Кроме того, существующие столбцы хранятся в виде строк в PySpark DataFrame.

навыки.столбцы

Использование Read.options.csv()

Теперь мы читаем файл CSV, используя метод read.options.csv(). Здесь нам нужно передать параметры, такие как разделитель, заголовок и т. Д., В параметрах в качестве аргументов и имени файла в csv(). Давайте передадим параметр заголовка, установив для него значение «True».

Сценарий 1:

импортировать pyspark

из pyspark.sql импортировать SparkSession

linuxhint_spark_app = SparkSession.builder.appName( «Подсказка по Линукс» ).getOrCreate()

# Использование read.options.csv()

навыки = linuxhint_spark_app.read. параметры ( заголовок =Истина).csv( 'person_skill.csv' )

# Отображение фрейма данных

навыки.шоу()

Выход:

Сценарий 2. Чтение разделителя CSV-файла

Параметр разделителя принимает символ, который используется для разделения каждого поля. По умолчанию используется запятая (,). Давайте воспользуемся тем же файлом CSV, что и в первом сценарии, и передадим запятую (‘,’) в качестве разделителя.

импортировать pyspark

из pyspark.sql импортировать SparkSession

linuxhint_spark_app = SparkSession.builder.appName( «Подсказка по Линукс» ).getOrCreate()

# Использование read.options.csv() с разделителем вместе с заголовком

навыки = linuxhint_spark_app.read. параметры ( заголовок =Истина,разделитель= ',' ).csv( 'person_skill.csv' )

# Отображение фрейма данных

навыки.шоу()

Выход:

Чтение нескольких файлов

До сих пор мы читали один файл CSV. Давайте посмотрим, как читать более одного CSV-файла. В этом сценарии строки в нескольких файлах добавляются в один кадр данных PySpark. Нам просто нужно передать имена файлов в списке внутри метода.

Пример:

Пусть у нас есть следующие CSV-файлы с именами «person_skill.csv» и «person_skill2.csv» со следующими данными:


Прочтите эти два файла CSV и сохраните их в одном кадре данных PySpark.

импортировать pyspark

из pyspark.sql импортировать SparkSession

linuxhint_spark_app = SparkSession.builder.appName( «Подсказка по Линукс» ).getOrCreate()

# Загрузить 2 CSV-файла с именами - person_skill.csv и person_skill2.csv в скиллы с метками столбцов с заголовком

навыки = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],сен= ',' , заголовок = Верно)

навыки.шоу()

Выход:

Объяснение:

Первый CSV содержит 6 записей, а второй CSV содержит 3 записи. Мы видим, что первый CSV загружается в DataFrame первым. Затем загружается второй CSV. Наконец, PySpark DataFrame содержит 9 записей.

Заключение

Чтение CSV в PySpark DataFrame довольно просто с помощью метода pyspark.sql.DataFrameReader.csv(). В этот метод можно передать параметры заголовка и разделителя, чтобы указать столбцы и формат. PySpark также поддерживает одновременное чтение нескольких CSV-файлов с помощью предоставленных методов и их параметров. В этой статье мы рассмотрели примеры, рассматривая разные варианты. Кроме того, мы видели два способа передачи опций методу.