PySpark ile Spark Dataframe İşlemleri-3

Pyspark ile Spark Dataframe işlemleri yazı dizimize devam ediyoruz.

from pyspark.sql import Row
liste = [
 (1,'Cemal',35,'Isci','Ankara'),
 (2,'Ceyda',42,'Memur','Kayseri'),
 (3,'Timur',30,'Issiz','Istanbul'),
 (4,'Burcu',29,'Pazarlamaci','Ankara'),
 (5,'Yasemin',23,'Pazarlamaci','Bursa'),
 (6,'Ali',33,None,None),
 (7,'Burcu',29,'Pazarlamaci','Ankara'),
 (8,None,31,None,None),
 (9,'Ahmet',33,'Doktor','Ankara')
]
rdd = sc.parallelize(liste)
insanlar = rdd.map(lambda x: Row(record_id=int(x[0]),isim=x[1], yas=int(x[2]), meslek=x[3], ikamet=x[4]))
insanlarDF = sqlContext.createDataFrame(insanlar)

insanlarDF = insanlarDF.selectExpr("record_id as RecordId","isim as Adi","yas as Yas","meslek as Meslek","ikamet as Sehir")

PySpark Dataframe Örneklem Seçmek (Sampling)

Dataframe’den örneklem alabiliriz. Kullanılacak metod sample(). Bu metod üç parametre alır: 1. withReplacement (True ya da False), 2. fraction örneğin .3 demek %30’unu al demek, 3. seed değeri rastgele seçim değeri.

insanlarDF.sample(False, 0.2, 3).show()
+--------+-----+---+------+--------+
|RecordId|  Adi|Yas|Meslek|   Sehir|
+--------+-----+---+------+--------+
|       1|Cemal| 35|  Isci|  Ankara|
|       3|Timur| 30| Issiz|Istanbul|
|       9|Ahmet| 33|Doktor|  Ankara|
+--------+-----+---+------+--------+

PySpark Dataframe Map İşlemi

Yukarıda ve daha önce gördüğümüz birçok işlem sonuç olarak yine dataframe döndürürken map() metodu sonuç olarak rdd döndürmektedir.

yasRDD = insanlarDF.map(lambda x: Row(Yas= (x[2] + 10)))
yasRDD.take(9)
[Row(Yas=45),
 Row(Yas=52),
 Row(Yas=40),
 Row(Yas=39),
 Row(Yas=33),
 Row(Yas=43),
 Row(Yas=39),
 Row(Yas=41),
 Row(Yas=43)]

Yukarıda Row(Yas = x[2]...) komutunda 2 sütun sıralamasında Yas sütununun index değerini verir. RecordId 0, Adi 1 ve Yas 2. Özetle yukarıda yaptığımız iş şu: Yaş sütunundaki her bir değere 10 ekledik ve  yasRDD adında yeni bir RDD’ye atadık ve bu rdd’yi yazdırdık.

PySpark Dataframe Sıralama (Sorting, OrderBy)

Şimdi dataframe’i büyükten küçüğe doğru yaş sıralamasına koyalım:

insanlarDF.orderBy(insanlarDF.Yas.desc()).show()
+--------+-------+---+-----------+--------+
|RecordId|    Adi|Yas|     Meslek|   Sehir|
+--------+-------+---+-----------+--------+
|       2|  Ceyda| 42|      Memur| Kayseri|
|       1|  Cemal| 35|       Isci|  Ankara|
|       6|    Ali| 33|       null|    null|
|       9|  Ahmet| 33|     Doktor|  Ankara|
|       8|   null| 31|       null|    null|
|       3|  Timur| 30|      Issiz|Istanbul|
|       4|  Burcu| 29|Pazarlamaci|  Ankara|
|       7|  Burcu| 29|Pazarlamaci|  Ankara|
|       5|Yasemin| 23|Pazarlamaci|   Bursa|
+--------+-------+---+-----------+--------+

İsterseniz bir de isimlere göre sıralayalım:

insanlarDF.orderBy(insanlarDF.Adi).show()
+--------+-------+---+-----------+--------+
|RecordId|    Adi|Yas|     Meslek|   Sehir|
+--------+-------+---+-----------+--------+
|       8|   null| 31|       null|    null|
|       9|  Ahmet| 33|     Doktor|  Ankara|
|       6|    Ali| 33|       null|    null|
|       4|  Burcu| 29|Pazarlamaci|  Ankara|
|       7|  Burcu| 29|Pazarlamaci|  Ankara|
|       1|  Cemal| 35|       Isci|  Ankara|
|       2|  Ceyda| 42|      Memur| Kayseri|
|       3|  Timur| 30|      Issiz|Istanbul|
|       5|Yasemin| 23|Pazarlamaci|   Bursa|
+--------+-------+---+-----------+--------+

Yukarıda parantez içindeki insanlarDF.Adi sonuna küçükten büyüğe sıralama yapan asc() fonksiyonu eklesek de olurdu. Eklemedik, demek ki varsayılan sıralama küçükten büyüğe.

PySpark Dataframe Yeni Sütun Eklemek

Bu işlemi yapmak için withColumn() metodunu kullanıyoruz. Yeni bir sütun ekleyebileceğimiz gibi mevcut olanın yerine de koyabiliriz. Şimdi yaşımızı 2 ile çarpalım ve Yas_carpi_iki isminde yeni sütun olarak ekleyelim:

insanlarDF.withColumn('Yas_carpi_iki', insanlarDF.Yas * 2).show()
+--------+-------+---+-----------+--------+-------------+
|RecordId|    Adi|Yas|     Meslek|   Sehir|Yas_carpi_iki|
+--------+-------+---+-----------+--------+-------------+
|       1|  Cemal| 35|       Isci|  Ankara|           70|
|       2|  Ceyda| 42|      Memur| Kayseri|           84|
|       3|  Timur| 30|      Issiz|Istanbul|           60|
|       4|  Burcu| 29|Pazarlamaci|  Ankara|           58|
|       5|Yasemin| 23|Pazarlamaci|   Bursa|           46|
|       6|    Ali| 33|       null|    null|           66|
|       7|  Burcu| 29|Pazarlamaci|  Ankara|           58|
|       8|   null| 31|       null|    null|           62|
|       9|  Ahmet| 33|     Doktor|  Ankara|           66|
+--------+-------+---+-----------+--------+-------------+

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Barkod Etiketi üretimi yapan firmaların işi ciddi bir iştir. Bu anlamda sizin de hangi firmayla çalışma yatığınız çok büyük önem taşır. Kullanım alanı sınırsızdır. Her alanda ve her sektörde bu etiketlere ihtiyaç duyulur. Etiket çeşitleri ve Barkod etiketleri, seri üretimle hazırlanmaktadır. Etiketler ahşap, plastik, metal ya da cam gibi ambalajlı ürünlerin üzerilerine ugulanır.
Mide botoksu midenin belirli yerlerine botoks maddesi enjekte etme suretiyle midedeki kasların çalışmasını sınırlandırmayı ve sayede midenin gıdaları sindirim sürecini yavaşlatarak buna bağlı olan açlık-tokluk hissi süresinin de uzatılmasını amaçlayan ameliyatsız kolay kilo verme tedavisidir. Botoks uygulanırken, midenin detaylı şekilde içerden görüntülenmesini sağlayan endoskopi uygulaması ile gerçekleştirilir. Bu sayede hastaya sadece gastroskpik uygulaması kadar bir rahatsızlık olur. Özellikle diyet programlarına ve düzenli egzersizlere uymakta zorlanan ve buna bağlı olarak da obeziteye yakalanan, bu yüzdende obezitenin sebep olduğu çeşitli sağlık sorunları olan kişiler için mide botoksu bir devrim niteliğindedir ve son yıllarda ülkemizde yaygın olarak kullanılmaktadır.
En güzel cami halısı dış avlusu olup bunun çevresi pencereli duvarlarla çevrilidir. Bu avulya 3 ü cephede olmak üzere, 8 kapıdan girilir. Şadırvan avlusu, 26 adet granit mermer ve porfir sütuna oturtulmuş, 30 kubbeyle çevrili geniş alandır. Mermer döşemeli bu geniş sahanın ortasında 6 mermer sütunlu şadırvan, sahanın azametini gösterir. Şadırvanın kemerleri, kabartma olarak Rumi geçmelerle ve köşebentleri, kabartma, lale ve karanfil motifleriyle bezelidir.
En güzel cami halısı dış avlusu olup bunun çevresi pencereli duvarlarla çevrilidir. Bu avulya 3 ü cephede olmak üzere, 8 kapıdan girilir. Şadırvan avlusu, 26 adet granit mermer ve porfir sütuna oturtulmuş, 30 kubbeyle çevrili geniş alandır. Mermer döşemeli bu geniş sahanın ortasında 6 mermer sütunlu şadırvan, sahanın azametini gösterir. Şadırvanın kemerleri, kabartma olarak Rumi geçmelerle ve köşebentleri, kabartma, lale ve karanfil motifleriyle bezelidir.
Termal Etiket Eco Termal etiket, yüzeyinde hami bir katman bulunmayan miktar çeşididir. Kumbara üzerine termal lamine edilmesi sonucunda oluşmaktadır. Kullanılan barkod yazıcının baş bölgesindeki ısı beraberlik birlikte termal sıvılaşma özelliği gösterir dahi bu şekilde Eco termal etiketin üzerine baskı alınır. Bu termal etiketlere yumruk termal olarak (ısıyla) yapılır ve yerde yüzden ribon kullanılmaz. Ribon kullanımı olmadığı için tahakküm maliyeti sıfıra yakındır.
Dijital Baskı ve baskı etiketi teknolojileri geliştikçe firmaların büyük ebatlı etiket ihtiyaçlarına da dijital çözümler sunulmaya başlamıştır. Böylece, birbirinden canlı renklerin ve kusursuz çizgilerin hakimiyetindeki büyük ebatlı dijital baskı etkileri; kurumsal firmaların reklam kampanyalarındaki en iddialı unsurlarına dönüşmüştür.