В этом руководстве мы увидим, как отображать данные PySpark на гистограмме. Здесь мы видим два сценария. Гистограмма создается на PySpark Pandas DataFrame и на данных RDD. Для этих двух сценариев PySpark предоставляет две функции: pyspark.pandas.DataFrame.plot.hist() и pyspark.RDD.histogram.
Тема содержания:
- Постройте гистограмму на PySpark Pandas DataFrame
- Постройте гистограмму в PySpark Pandas DataFrame с параметром Bins
- Постройте гистограмму на PySpark RDD, указав номер корзины
- Постройте гистограмму на PySpark RDD, указав размер каждого сегмента
Pyspark.pandas.DataFrame.plot.hist()
В этом сценарии гистограмма отображается как графическое представление данных, в котором диапазон классов разбивается на столбцы (из PySpark Pandas DataFrame) вместе с горизонтальной осью X. Ось Y представляет количество вхождений в PySpark Pandas DataFrame для каждого столбца.
Синтаксис:
pyspark_pandas_DataFrame.plot.hist (бункеры,...)
Он принимает общее количество ячеек в качестве необязательного параметра, который является целым числом, и некоторые необязательные аргументы ключевого слова. Если интервалы не указаны для каждого столбца, создается полоса.
Постройте гистограмму на PySpark Pandas DataFrame
Создайте PySpark Pandas DataFrame с 2 столбцами и 4 записями. Постройте гистограмму, не передавая никаких параметров функции plot.hist().
из pyspark импортировать пандыpyspark_pandas_dataframe=pandas.DataFrame({ 'Высота_здания' :[ 120,56 , 234,67 , 12,0 , 200,45 ], 'Площадь застройки' :[ 2 , 3 , 1 , 4 ]})
печать (pyspark_pandas_dataframe)
# Гистограмма PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Выход:
Здесь имена столбцов «Building_height» и «Building_Area».
Посмотрим на гистограмму:
Общее количество строк в предыдущем DataFrame равно 4. Таким образом, создается 4 бина.
Постройте гистограмму в PySpark Pandas DataFrame с параметром Bins
Создайте PySpark Pandas DataFrame с 2 столбцами и 4 записями. Постройте гистограмму, не передавая никаких параметров функции plot.hist().
из pyspark импортировать пандыpyspark_pandas_dataframe=pandas.DataFrame({ 'Высота_здания' :[ 120,56 , 234,67 , 12,0 , 200,45 ], 'Площадь застройки' :[ 2 , 3 , 1 , 4 ]})
# Гистограмма PySpark-Pandas с 2 бинами
pyspark_pandas_dataframe.plot.hist (бункеры = 2 )
Выход:
Здесь имена столбцов «Building_height» и «Building_Area».
Давайте посмотрим на гистограмму — красный цвет относится к столбцу Building_Area, а синий — к столбцу Building_height:
Как мы указали, было создано только 2 бина и 2 бара. Здесь четыре ряда объединены в 2 корзины.
Постройте гистограмму на PySpark RDD, указав номер корзины
Когда вы работаете с RDD, гистограмму можно вернуть в виде кортежа, включающего сегменты и общие значения, присутствующие в каждом сегменте.
Синтаксис:
pyspark_RDD.histogram(сегменты)В этом сценарии мы передаем количество сегментов (целое число), включенных в гистограмму. Он возвращает кортеж списков, который включает диапазоны сегментов и соответствующие вхождения значений в следующем формате: ([диапазоны сегментов…], [вхождения значений…]).
Пример 1:
Давайте создадим RDD с именем «Building_height» с 10 значениями и создадим гистограмму с 3 сегментами.
импортировать pysparkиз pyspark.sql импортировать SparkSession
из pyspark.rdd импортировать RDD
spark_app = SparkSession.builder.appName( «линукс» ).getOrCreate()
# Создайте RDD с 10 значениями
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17,8 , 24 , 56 , 78 , 90 , 100 ])
Распечатать( 'Действительный: ' ,Building_height.collect())
# Указываем 3 корзины
Building_height.histogram( 3 )
Выход:
- Bucket-1 находится в диапазоне от 12,0 до 86,223 : в этом диапазоне общее количество значений, присутствующих в сегменте, равно 5.
- Сегмент-2 находится в диапазоне от 86,223 до 160,446: в этом диапазоне общее количество значений, присутствующих в сегменте, равно 3.
- Корзина-3 находится в диапазоне от 160,446 до 234,67 : в этом диапазоне общее количество значений, присутствующих в корзине, равно 2.
Пример 2:
Создайте гистограмму с 2 сегментами на ранее созданном RDD.
импортировать pysparkиз pyspark.sql импортировать SparkSession
из pyspark.rdd импортировать RDD
spark_app = SparkSession.builder.appName( «линукс» ).getOrCreate()
# Создайте RDD с 10 значениями
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17,8 , 24 , 56 , 78 , 90 , 100 ])
Распечатать( 'Действительный: ' ,Building_height.collect())
# Указываем 2 корзины
Building_height.histogram( 2 )
Выход:
- Сегмент 1 находится в диапазоне от 12,0 до 123,335. В этом диапазоне общее количество значений, присутствующих в корзине, равно 8.
- Сегмент 2 находится в диапазоне от 123,335 до 234,67: в этом диапазоне общее количество значений, присутствующих в сегменте, равно 2.
Постройте гистограмму на PySpark RDD, указав размер каждого сегмента
В предыдущем сценарии мы передали сегменты функции RDD.histogram(). Теперь мы передаем размеры корзин один за другим внутри списка и передаем этот список в качестве параметра этой функции. Убедитесь, что нам нужно указать как минимум два сегмента в порядке возрастания/возрастания, и в нем не будет повторяющихся значений.
Синтаксис:
pyspark_RDD.histogram([диапазоны сегментов…])В этом сценарии мы передаем количество сегментов (целое число), включенных в гистограмму. Он возвращает кортеж списков, который включает диапазоны сегментов и соответствующие вхождения значений в следующем формате: ([диапазоны сегментов…], [вхождения значений…]).
Пример 1:
Давайте создадим RDD с именем «Building_height» с 10 значениями и создадим гистограмму с диапазоном значений бакера [0, 50, 100, 150, 200, 250].
импортировать pysparkиз pyspark.sql импортировать SparkSession
из pyspark.rdd импортировать RDD
spark_app = SparkSession.builder.appName( «линукс» ).getOrCreate()
# Создайте RDD с 10 значениями
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17,8 , 24 , 56 , 178 , 90 , 100 ])
Распечатать( 'Действительный: ' ,Building_height.collect())
# Указание ведра с размером - [0,50,100,150,200,250]
Building_height.histogram([ 0 , пятьдесят , 100 , 150 , 200 , 250 ])
Выход:
- Сегмент 1: (от 0 до 50): общее количество значений в этом сегменте равно 3.
- Сегмент 1: (от 50 до 100): общее количество значений в этом сегменте равно 2.
- Сегмент 1: (от 100 до 150): общее количество значений в этом сегменте равно 2.
- Сегмент 1: (от 150 до 200): общее количество значений в этом сегменте равно 2.
- Сегмент 1: (от 200 до 250): общее количество значений в этом сегменте равно 2.
Пример 2:
Создайте гистограмму с диапазоном значений ведра [0, 100, 200, 300].
импортировать pysparkиз pyspark.sql импортировать SparkSession
из pyspark.rdd импортировать RDD
spark_app = SparkSession.builder.appName( «линукс» ).getOrCreate()
# Создайте RDD с 10 значениями
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17,8 , 24 , 56 , 178 , 90 , 100 ])
Распечатать( 'Действительный: ' ,Building_height.collect())
# Указание ведра с размером - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Выход:
- Сегмент 1: (от 0 до 100). Общее значение в этом ведре равно 5.
- Ведро 2: (от 100 до 200). Общее значение в этом ведре равно 3.
- Ведро 3: (от 200 до 300). Общее значение в этом ведре равно 2.
Заключение
Мы увидели, как создавать гистограммы в PySpark на PySpark Pandas DataFrame и RDD. histogram() — это функция, которая используется для получения гистограммы данных RDD. plot.hist() используется для отображения гистограммы в PySpark Pandas DataFrame. Мы обсудили эти функции с примерами, охватив все параметры.