Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

R’da Büyük Veri Analizi ve “sparklyr” Arayüzü : Big Data Analysis and Interface “sparklyr” in R

  • ANA SAYFA
  • Blog Details
Ağustos 23 2020
  • İstatistik
  • Makine Öğrenme

sparklyr, R ile Apache Spark arasında bir arayüz sağlayarak R’daki büyük verileri işlemek için kullanılan açık kaynaklı küme hesaplama mantığında çalışan bir kütüphanedir.

Adı geçmişken biraz küme hesaplamadan bahsetmekte fayda var. 1967’de IBM’den Gene Amdahl tarafından yayınlanan bir makalede, paralel çalışma yapmanın bir yolu olarak küme hesaplamanın temelini adını taşıdığı Amdahl Yasası ile resmen ortaya koymuştur.

Küme hesaplama (cluster computing), hesaplama görevlerini birden çok bilgisayar arasında paylaşma işlemidir ve bu bilgisayarlar veya makineler kümeyi oluşturur. Kümeler, işlenen verilerin veya içeriğin kritikliği ve beklenen yüksek işleme hızı açısından yaygın olarak kullanılmaktadır. Kesinti süresi olmadan uzatılmış kullanılabilirlik ve ağır yük dengeleme yeteneği bekleyen siteler ve uygulamalar, bu kümeleri büyük ölçüde kullanmaktadır. Diğer bir ifadeyle, küme hesaplama, birçok bilgisayarın bir ağa bağlı olduğu ve tek bir varlık gibi çalıştığı anlamına gelir. Ağa bağlı her bilgisayara bir düğüm adı verilir. Küme hesaplama daha yüksek hesaplama hızı ve gelişmiş veri entegrasyonu sağlayarak karmaşık problemlere çözümler sunmaktadır. Küme hesaplama ağlar ile dağıtık sistem üzerinde çalışır. Bir küme hesaplama mimarisi gözümüzde canlanması adına aşağıdaki şekilde verilmiştir.

Kaynak: https://www.educba.com

İş uygulamalarına, performans optimizasyonuna ve yük dengeleme kümeleri, yüksek kullanılabilirlik (HA) kümeleri, yüksek performanslı (HP) kümeleri gibi mimari tercihlere bağlı olarak çeşitli küme hesaplama türleri kullanılır. Avantajlarından bazıları, işlem hızı, maliyet etkinliği, ölçeklenebilirlik ve kaynakların yüksek kullanılabilirliğidir. Küme hesaplamanın popüler uygulama alanları arasında Google arama motoru, Deprem Simülasyonu, Petrol Rezervuarı Simülasyonu ve Hava Tahmini sistemleri yer almaktadır.

Yapılan bir analizde Spark alt yapısının Hadoop’a göre Lojistik regresyon analizinde yaklaşık 110 kat daha hızlı olduğu bulunmuştur. Aşağıdaki grafikte Hadoop ve Spark Lojistik regresyon analizindeki hızları bakımından karşılaştırılmıştır. Diğer taraftan Spark’ın bağımsız küme modunu kullanarak EC2’de, Hadoop YARN’de, Mesos’ta veya Kubernetes’te çalıştırabilirsiniz. HDFS, Apache Cassandra, Apache HBase, Apache Hive ve diğer yüzlerce veri kaynağındaki verilere Spark ile ulaşabilirsiniz.

Kaynak: https://spark.apache.org/mllib/

Sparklyr kütüphanesi ile büyük veriyi bir Spark kümesi içerisinde analiz edebilirsiniz. Bu paket, hem bellekte hem de bellek dışında veri çerçevesi nesneleriyle çalışmak için popüler bir araç olan dplyr paketi için eksiksiz bir zemin oluşturmaktadır. R kodunu Spark SQL’e çevirmek için dplyr kullanabilirsiniz. Sparklyr ayrıca MLlib‘i destekler, böylece Spark’ta verileriniz üzerinde sınıflandırma, regresyon, küme, karar ağaçları ve daha birçok makine öğrenimi algoritmasını çalıştırabilirsiniz. MLlib, Apache Spark’ın ölçeklenebilir makine öğrenimi kütüphanesidir. Java, Scala, Python programlama dilllerinde de kullanılabilir. Sparklyr ile, geleneksel olarak R belleğini aşan büyük miktarda veriyi analiz edebilir, daha fazla görselleştirme ve dokümantasyon için Spark’tan R’a sonuçlar toplayabilirsiniz.

Sparklyr paketi hakkında kısa bir bilgi verdikten sonra şimdi R’da Sparklyr paketini yükleyerek adım adım örnek uygulama yapalım.

Aşağıdaki kod bloğu ile sparklyr paketini CRAN‘dan kurabilirsiniz.

install.packages("sparklyr")

sparklyr paketini kurduktan sonra sparklyr kütüphanesini çağırmak için aşağıdaki R kod bloğunu yazıyoruz. 2. satırdaki ve 3. satırdaki kodlar sparklyr paketinin güncel paketini yükleme amaçlı kullanılmaktadır. En güncel versiyonu yüklemek için RStudio IDE‘yi de kullanabilirsiniz.

library(sparklyr)
spark_install(version = "2.1.0")
#yada
devtools::install_github("rstudio/sparklyr")# en son versiyonu yüklemek için

sparklyr arayüz paketi ile Spark’a bağlanmak için aşağıdaki R kod bloğu yazılır. Hem yerel Spark kümesine hem de uzak Spark kümelerine bağlanabilirsiniz. Burada, spark_connect işlevi aracılığıyla yerel bir Spark kümesine bağlanacağız:

library(sparklyr)
#Yerel Spark ile bağlantı kurmak için
sc <- spark_connect(master = "local")
#Spark ile bağlantıyı kesmek istiyorsak: Bunu genelde yapılan işlem tamamlandıktan sonra yaparız.
spark_disconnect(sc)#başlangıçta çalıştırmayınız.
#eğer "databricks" metodu ile Spark ile bağlantı kurmak istersek
sc <- spark_connect(method = "databricks")

Artık mevcut tüm dplyr paketi özellikleri küme içindeki tablolarda kullanabiliriz. R’den Spark kümesine bazı veri kümelerini kopyalayarak başlayacağız. Basit ve bilinen bir mtcar veri seti ile başlayalım.

mtcars_tbl<-sdf_copy_to(sc, mtcars, "mymtcars", overwrite = TRUE)#birden çalıştırmak istediğim için overwrite = TRUE bileşenini kullandım.
mtcars_tbl %>% select(-carb) %>% head()#ilk 6 kaydı getirmek için. Burada carb değişkeni dışarıda bırakılmıştır sayfaya sığmadığı için

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen ilk 6 kayıt aşağıda verilmiştir.

mtcars veri setinde cyl (silindir)‘ye göre basit bir filtreleme yapacak olursak;

mtcars_tbl %>% select(-carb) %>% filter(cyl == 6) %>% head() #silindiri 6'ya eşit olanların ilk 6 kaydı. Burada carb değişkeni dışarıda bırakılmıştır sayfaya sığmadığı için.

Yukarıdaki R kod bloğunun çalıştırılmasından sonra filtrelemeye göre elde edilen ilk 6 kayıt aşağıda verilmiştir.

Son olarak aynı veri setinden ggplot paketi kullanarak spark üzerinde grafik oluşturalım. mtcars veri seti setinde vites tipi olan “am” değişkeni iki kategoriden oluşmakta olup 0 otomatik vitesi, 1 ise manuel vitesi gösterecek şekilde recode edildikten sonra vites türüne göre hp (beygir gücü) ve mpg (galon yakıt başına gidilen mil) değişken değerleri grafik üzerinde verilmiştir.

library(ggplot2)
mtcars_tbl %>% select(mpg, cyl,hp, am) %>% mutate(am=if_else(am==0,"automatic", "manuel")) %>% ggplot(aes(hp, mpg, fill=am)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(~am)+
  theme_light()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafik aşağıda verilmiştir.

İşlemimizi tamamladığımız varsayımıyla Spark ile bağlantıyı kesmek için spark_disconnect() fonksiyonunu kullanıyoruz.

#Spark ile bağlantıyı kesmek istiyorsak: Bunu genelde işlem tamamlandıktan sonra yaparız.
spark_disconnect(sc)#başlangıçta çalıştırmayınız:)

Özetle R ile Apache Spark arasında bir arayüz sağlayan ve büyük verinin analizinde kullanılan sparklyr R paketi ile hacimsel olarak küçük bir veri seti üzerinde örnek bir uygulama yapılarak söz konusu paketin kullanımı hakkında farkındalık oluşturulmaya çalışılmıştır.

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

UKEssays. (November 2018). Cluster Computing: History, Applications and Benefits. Retrieved from https://www.ukessays.com/essays/computer-science/cluster-computing-history-applications-9597.php?vref=1

https://databricks.com./

https://therinspark.com/intro.html

https://www.youtube.com/watch?v=vNEIiUhF4FY.

What is Cluster Computing?

https://spark.apache.org/docs/latest/cluster-overview.html

https://spark.rstudio.com/

https://spark.apache.org/mllib/

https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/2961012104553482/3725396058299890/1806228006848429/latest.html

https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/mtcars.html

https://www.r-project.org/

Önceki yazı Sonraki Yazı
ApacheApache SparkBig dataBüyük veriRSparksparklyr

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut