Pandas: Veri Türleri Üzerindeki Perdeyi Kaldırın

Merhabalar bu yazımızda: “Pandas dataframe veri türlerini nasıl görebiliriz?” sorusunun cevabını iki farklı yöntemi mukayese ederek öğreneceğiz. Aslında bir nevi pandas dataframe şeması üzerinde keşif yapacağız. “Okudum veriyi oldu bitti” deyip dümdüz, tam gaz ilerlemeyin. İleride başınıza neler gelebilir dikkat edin. Aslında dataframe nesnesinin dtypes özelliği var oradan çok kolay veri türlerini öğrenebiliriz niçin böyle […]
DBeaver Community Edition Cassandra JDBC Driver Ekleme

Merhabalar. Hepimiz SQL kullanmak için farklı editörler kullanıyoruz. Eğer Cassandra CQL için ücretsiz editör sıkıntısı yaşıyorsanız doğru adrestesiniz. Benim editör tercihim DBeaver Community Sürümü (Edition). Bu sürümde MySQL, PostgreSQL, Hive, Spark Thrift, SQLlite, Oracle ve başka bir çok veri tabanı bağlantısı hazır geliyor. Ancak Canssandra ve CQL kullanmak istiyorsanız maalesef bu hazırda yok. Sadece Cassandra […]
Pandas Dataframe’i Veri Tabanına Yazmanın En Kötü Yolu

Pandas dataframe veri bilimci ve mühendisleri tarafından çok yaygın kullanılan bir araç. Veriyi şekilden şekile sokmak için birebir. Veriyi istediğimiz hale getirdikten sonra çoğu zaman bir yere yazıp saklamak isteriz. Eğer saklanacak yer bir veri tabanı olacak ise bunun bir kaç farklı yöntemi var. Bunlardan birisi de pandas dataframe to_sql metodu. to_csv’ye çok alışığız, bu […]
MySQL Upsert İçin Alternatif Bir Yaklaşım

İş ihtiyacını karşılayacak şekilde temiz, doğru, güvenilir, istenen formatta, gıcır gıcır veri tabanında bekleyen bir veriyi kim sevmez ki 🙂 Mesela Mysql’de. Elbette herkes sever ancak bunu sağlayacak olan sağlam işleyen veri akış hatlarıdır (data pipelines). Veri akış hatları bilgi sistemi kullanan küçük veya büyük her örgüt için olmazsa olmaz bir zorunluluk haline geldi. Artık […]
Spark on Kubernetes

17 Ekim 2024’de güncellendi. Merhabalar. Bu yazımızda bir Spark uygulamasını Kubernetes cluster (Minikube) üzerinde çalıştıracağız, yaygın adıyla Spark on Kubernetes. Bildiğimiz gibi Spark 2.3 sürümüne kadar sadece 3 cluster yöneticisi vardı: Hadoop YARN, Apache Mesos ve Spark Standalone. Sürüm 2.3 ile beraber Kubernetes de bunların arasına katıldı. Şimdiye kadar Spark kullanımında hakim cluster yöneticisi YARN […]
Apache Spark AWS S3 Veri Kaynağı

Merhabalar. Bu yazımızda Apache Spark AWS S3 entegrasyonu yapacağız. Bu kapsamda bir Spark dataframe’i AWS S3’e nasıl yazacağımızı ve S3’den Spark ile nasıl veri okuyacağımızı öğreneceğiz. Bu işi lokal makinemizdeki Spark ile yapacağız. Peki bunun yazı haline gelecek neyi var diye sorarsanız, ben de “Biraz gıcık bir iş, ben çektim siz çekmeyin” derim. Aslında birkaç […]
Spark ve Delta Lake ile Büyük Veri Slowly Changing Dimension Type2

Bu yazımızda veri ambarı dünyasında boyut (dimension) tablolarında sıklıkla kullanılan bir güncelleme yöntemi olan slowly changing dimension örneğini Apache Spark ve Delta Lake ile yapacağız. Veri ambarında gerçekleşen işlemler ve bu işlemlere ait tanım bilgileri farklı tablolarda tutulur. Hepimiz e-ticaret sitelerinden alışveriş yapıyoruz. Örneğin bir telefon kılıfı aldık. Bu telefon kılıfı bir üründür ve tanımı […]
Spark İşini Cep Telefonundan Başlatmak: Apache Livy Server

Başlık çarpıcı geldi değil mi? İnanmazsınız ancak doğru. Spark işlerini genelde client kütüphanelerinin kurulu olduğu makinelerden, yani Spark’ın Hadoop’un nerede olduğundan haberdar ve konfigürasyonları yapılmış makinelerden, başlatırız. Bu durum bizim spark işini başlatma (spark-submit) konusunda client kütüphanelerine bağımlı kılar. İşte bu kısıttan kurtulmak için “Spark işlerini her yerden başlat (Submit Jobs from Anywhere)” sloganıyla bir […]
Apache Flink HDFS: Okuma ve Yazma

Merhabalar. Bu yazımızda Apache Flink Datastream API ile HDFS’ten veri okuma ve tekrar HDFS’e yazma ile ilgili basit bir örnek yapacağız. Bu yazıyı yazmaya beni motive eden sebep şu oldu: Spark ile HDFS’e yazmaya alışkınız artık çocuk oyuncağı gibi geliyor. Apache Flink HDFS ne kadar zor olabilir ki diye düşündüm ve kendim bir deneyeyim dedim. […]
Spark Structured Streaming: Birden Fazla Kafka Topic’e Produce Etmek

Merhabalar. Apache Spark Structured Streaming yaygın kullanılan akan veri işleme platformlarından birisi. Elbette akan verinin işlendiği bir ekosistemde Apache Kafka da bir şekilde yerini alıyor. Spark+Kafka bu tür tasarımlar için iyi bir ikili. Bu yazımızda Spark Structured Streaming ile işlenen bir verinin üretilen çıktıya bağlı olarak birden fazla topic’e gönderimine dair bir örnek yapacağız. […]
MLflow: Makine Öğrenmesi Hayat Döngüsü Platformu

Merhabalar bu yazımızda MLflow’u tanımaya çalışacağız. MLflow nedir sorusuna “MLflow, açık kaynaklı bir makine öğrenmesi hayat döngüsü platformudur.” şeklinde cevap verebiliriz. Makine öğrenmesi çalışmalarında; Bir çok farklı veri seti kullanılır. Uğraştırıcı veri hazırlık süreci vardır. Farklı bir çok algoritma denenir. Belirlenen bir başarı metriğini en iyi elde eden algoritma ve hiper parametreler aranır. Bir model […]
Apache Flink FileStream Window Aggregation

Merhabalar. Bu yazımızda Apache Flink ile FileStream kaynağından veri okuyacağız ve okuduğumuz bu veri üzerinde zaman pencereli (window) aggregation yaparak ekrana yazdıracağız. Çalışmamda kullandığım ortam bilgileri şu şekildedir: Ubuntu, Intellij IDEA (maven projesi), Java8, Scala 2.11, Flink 1.9.2, github projesine buradan erişebilirsiniz. Uygulamamızda iris veri setini (data-generator input klasörü içinde mevcuttur) data-generator ile bir dizine […]
Apache Flink Dataset Api ile Temel Veri Analizi

Herkese merhabalar. Bu yazımızda Apache Flink Dataset Api ile örnek veri setleri üzerinden veri analizi yapacağız. Yapacağımız örnek meşhur retail_db veri tabanındaki csv dosyalarını kullanarak tutar bakımından en çok iptal edilen ürünleri bulmaya çalışmak olacak. Çalışmamda kullandığım ortam bilgileri şu şekildedir: Ubuntu, Intellij IDEA (maven projesi), Java8, Scala 2.11, Flink 1.9.2, veri setlerine buradan github projesine […]
Apache Spark ile LightGBM Kullanarak Sınıflandırma Yapmak

Merhabalar. LightGBM’in ününü duymuşsunuzdur. Ancak bunu Spark ile kullanmak istediğinizde maalesef bu algoritma Spark ML’de bulunmuyor. Bu yazımızda LightGBM’i Spark içinde nasıl kullanacağımızı PySpark ile uygulamalı olarak göreceğiz. Bildiğimiz gibi Apache Spark büyük veri dünyasında makine öğrenmesi çalışmalarının vazgeçilmez bir aracı. Küçük veri dünyasında scikit-learn ile yaptığımız işleri büyük veri tarafında genelde Spark ile yaparız. […]
Docker ve Kubernetes Kurulumu: VirtualBox+CenOS7+Docker+Minikube

Herkese merhaba. Bu yazımda eğitim veya geliştirme amaçlı Docker ve Kubernetes (Minikube) ortamını nasıl kuracağımızdan bahsedeceğim. Peşinen söyleyeyim ki Kubernetes değil, üzerinde Kubernetes kullanabileceğimiz Minikube kuracağız. Konteynırlaşma trendi artarak devam ediyor. Yakın bir zamanda “Hala Docker bilmiyor musun? Cahil misin nesin?” muhabbetiyle karşılaşabilirsiniz. Sadece Docker olsa iyi bir de bunun Kubernetes’i var. Elbette bir çok […]
Database, Datawarehouse, Datalake derken bir de Lakehouse mu çıktı başımıza?

Geçenlerde lakehouse kavramını duyunca Hoppalaaa!!! diyesim geldi. Neredeyse her güne yeni bir kavramla uyandığımız bir devirde yaşıyoruz. Daha datawarehouse ne anlayamadan başımıza datalake çıkardılar, şimdi ise lakehouse. Merak ettim, lakehouse da acaba aynı şeylerin süslenmiş başka isimlerle sunulması mı diye? Değilmiş. Bir veri mühendisi, veri bilimci veya veri analisti için bir veri akışı (data pipeline) […]
Pratik Bilgiler, Pratik Komutlar: Python Pandas

Merhabalar bu yazımızda Python Pandas ile pratik bilgiler ve komutları paylaşıyor olacağım. Pandas dataframe tarih (date) filtreleme Dataframe içinde takrarlanan sütunları elde etmek Bir sütunda birden fazla değer içinde arayarak filtrelemek: where a_column in () Pandas ile zip dosyasından veri okumak Python Pandas head Sütun Truncate Önleme – pandas truncate column Pandas dataframe sütunlarını tek […]
Pratik Bilgiler ve Komutlar: Cassandra

Merhabalar. Bu yazımızda popüler NoSQL veri tabanlarından birisi olan Apache Cassandra ile yaygın olarak kullandığım pratik komut ve ipuçlarını paylaşıyor olacağım. Eğer Cassandra eğitimi almak istiyorsanız Apache Cassandra eğitimi tam size göre olabilir. Cassandra eğitim detaylarına buradan ulaşabilirsiniz. Cassandra nedir? Cassandra cluster üzerindeki bir node hangi portu kullanıyor? Cassandra keyspace oluşturmak Cassandra’da consistency level’i nasıl […]
Pratik Bilgiler ve Komutlar: Apache Spark

Apache Spark ile zamanla edindiğim ipuçları ve pratik bilgileri diğer pratik bilgiler ve komutlar yazı dizilerinde olduğu gibi sizlerle paylaşacağım. Faydalı olmasını umuyorum. Spark RDD[String] nasıl dataframe yapılır? Rdd’yi Dataframe’e Dönüştürmek Spark Dataframe Vektör tipini Array tipine çevirmek Pyspark ile Excel’e yazmak Spark ile otomatik olarak sütun seçmek (Scala) spark-shell’i başlatırken konfigürasyonları nasıl ayarlarım? PySpark […]
Pratik Bilgiler ve Komutlar: Kubernetes

Merhabalar. Pratik bilgiler ve komutlar serimizin bu yazısında Kubernetes ile ilgili işinize yarayacağını düşündüğüm pratik komut ve bilgilere yer vereceğim. Kubernetes bir container orchestration aracıdır. Hatta mevcutların en popülerlerindendir. 2015 yılında ortaya çıkmasına rağmen geniş bir kullanıma kavuştu. Tabi bunun arkasında Google’dan neşet etmesi ve Google tarafından kullanıyor olmasının payı büyük. Kubernetes cluster bilgisini nasıl […]