PySpark ile Big Data Temelleri
Upendra Devisetty
Science Analyst, CyVerse
DataFrame işlemleri: Dönüşümler ve Eylemler
DataFrame Dönüşümleri:
DataFrame Eylemleri:
Düzeltme: printSchema() herhangi bir Spark dataset/dataframe için bir yöntemdir, eylem değildir
select() dönüşümü DataFrame’deki sütunları alt kümeye alırdf_id_age = test.select('Age')
show() eylemi DataFrame’de ilk 20 satırı yazdırırdf_id_age.show(3)
+---+
|Age|
+---+
| 17|
| 17|
| 17|
+---+
only showing top 3 rows
filter() dönüşümü bir koşula göre satırları süzernew_df_age21 = new_df.filter(new_df.Age > 21)
new_df_age21.show(3)
+-------+------+---+
|User_ID|Gender|Age|
+-------+------+---+
|1000002| M| 55|
|1000003| M| 26|
|1000004| M| 46|
+-------+------+---+
only showing top 3 rows
groupby() bir değişkene göre gruplartest_df_age_group = test_df.groupby('Age')
test_df_age_group.count().show(3)
+---+------+
|Age| count|
+---+------+
| 26|219587|
| 17| 4|
| 55| 21504|
+---+------+
only showing top 3 rows
orderby() bir veya daha çok sütuna göre DataFrame’i sıralartest_df_age_group.count().orderBy('Age').show(3)
+---+-----+
|Age|count|
+---+-----+
| 0|15098|
| 17| 4|
| 18|99660|
+---+-----+
only showing top 3 rows
dropDuplicates() bir DataFrame’deki yinelenen satırları kaldırırtest_df_no_dup = test_df.select('User_ID','Gender', 'Age').dropDuplicates()
test_df_no_dup.count()
5892
withColumnRenamed() DataFrame’de bir sütunu yeniden adlandırırtest_df_sex = test_df.withColumnRenamed('Gender', 'Sex')
test_df_sex.show(3)
+-------+---+---+
|User_ID|Sex|Age|
+-------+---+---+
|1000001| F| 17|
|1000001| F| 17|
|1000001| F| 17|
+-------+---+---+
printSchema() DataFrame’deki sütun türlerini yazdırırtest_df.printSchema()
|-- User_ID: integer (nullable = true)
|-- Product_ID: string (nullable = true)
|-- Gender: string (nullable = true)
|-- Age: string (nullable = true)
|-- Occupation: integer (nullable = true)
|-- Purchase: integer (nullable = true)
columns operatörü bir DataFrame’in sütunlarını verirtest_df.columns
['User_ID', 'Gender', 'Age']
describe() DataFrame’deki sayısal sütunların özet istatistiklerini hesaplartest_df.describe().show()
+-------+------------------+------+------------------+
|summary| User_ID|Gender| Age|
+-------+------------------+------+------------------+
| count| 550068|550068| 550068|
| mean|1003028.8424013031| null|30.382052764385495|
| stddev|1727.5915855307312| null|11.866105189533554|
| min| 1000001| F| 0|
| max| 1006040| M| 55|
+-------+------------------+------+------------------+
PySpark ile Big Data Temelleri