Kovan bölümleri – Sellkart Vaka Çalışması-Verileri stratejik olarak kullanma

Yayınlanan: 2015-08-14

Sellkart, birincil bir e-ticaret Hint web sitesi ve perakende mağazasıdır ve diğer tüm e-ticaret web siteleri gibi, sattığı tüm ürünlerin kullanıcı verilerini ve envanterini depolaması gerekir. Başlıca veri depolama seçeneklerinden biri olan MySQL veritabanını kullanır. MySQL, güvenli, güvenli ve güvenilir veri depolamadır. Ancak Sellkart büyüdükçe, daha fazla müşteri bu E-ticaret portalına girmeye başladı. Artık Sellkart, konumları, davranışları, demografik günlükleri, satın alınan ürün ve iade edilen ürünler, COD, Kredi kartı/Banka kartı gibi ödeme seçenekleri gibi kullanıcı verilerini toplar. Analistler bu verileri müşteri değerini, daha iyi ödeme seçeneklerini tahmin etmek ve daha iyi reklam kampanyaları kullanarak işleri genişletmek ve süreçleri kolaylaştırmak için kullanır.

Toplanan verilerin stratejik olarak nasıl kullanılabileceğini göstermek için, burada kullanıcı adları, şehirleri, meslekleri, toplam no'dan oluşan sahte bir tüketici veri kümesini ele alacağız. satın alınan öğelerin sayısı ve toplam no. kusurlar nedeniyle iade edilen ürünlerin.

Burada sahte veri setinde (data.csv), 25'ten fazla ürün satın alan müşterilerin verileri var.

data.csv dosyasındaki alanlar

  • Kullanıcı adı (Dize)
  • Şehir (Dize)
  • Meslek (Dize)
  • Satın alındı ​​(Tamsayı)
  • Döndürülen (Tamsayı)
  • Sellkart, birden çok sütunu ve birkaç gigabaytın üzerinde oldukça büyük bir veri kümesini içeren bu verileri, sisteminin temel öngörülerini tahmin etmek ve anlamak için kullanır, örneğin:

  • Müşterinin yaşam boyu değeri
  • Ürün başarısı
  • Bir ürünün demografik satın alınması
  • endişe bölgeleri
  • Ürünlerin gerçek zamanlı fiyatlandırması
  • İlgi çekici müşterileri yukarı satmak

Şimdi Hadoop'ta küçük bir aralık analizinin nasıl yapıldığını göstereceğiz. Verileri kullanarak öğreneceğimiz şeyler:

a) Aldıkları ürün miktarına göre en üst tüketiciyi bulmak.

Kullanım Alanları: Ortalama müşterilere satış yaparak en iyi alıcılara özel ayrıcalıklar verin.

b) En çok ürünü satın alan iş sektörünü bulmak.

Kullanım Alanları: En çok satan ürün yelpazesinden daha fazla ürün tutmak, benzer türdeki ürünlere tavsiye.

c) En çok ürünün satın alındığı şehirlerin bulunması.

Kullanım Alanları: Bölge bilge alıcıları hedeflemek, daha az müşterinin olduğu alanlara odaklanmak, iyi pazarlarda yeni ürünler denemek.

1.Verilerin HDFS'ye kopyalanması.

a) Dizini hadoop HDFS'de yapın

[training@localhost ~]$ hadoop fs -mkdir /user/training/case1

[training@localhost ~]$ hadoop fs -ls

Found 3 items

drwxr-xr-x - training supergroup 0 2015-07-21 16:48 /user/training/case1

-rw-r--r-- 1 training supergroup 44009445 2015-07-20 12:39 /user/training/crime

drwxr-xr-x - training supergroup 0 2015-07-20 14:21 /user/training/csvfile

b) Dosyayı daha fazla kullanım için kopyalamak

[training@localhost ~]$ hadoop fs -copyFromLocal ~/Desktop/case1/data.csv /user/training/case1

[training@localhost ~]$ hadoop fs -ls /user/training/case1

Found 1 items

-rw-r--r-- 1 training supergroup 2489638 2015-07-21 16:49 /user/training/case1/data.csv

Bu dosya kopyalandıktan sonra farklı sonuçlar elde etmek için Hive kullanılarak işlenir.

2. Verileri işlemek için kovanı kullanma.

a) Bu verileri depolamak için kullanılacak kovanda tablo oluşturma.

[training@localhost ~]$ hive

creatHive history file=/tmp/training/hive_job_log_training_201507211652_319213433.txt

hive> create table shopping (username string,city string,occupation string,purchaseditem,int,returneditem int) row format delimited fields

terminated by ',' stored as textfile

OK

Time taken: 2.892 seconds

hive> show tables;

OK

crimes

shopping

Time taken: 0.171 seconds

b) Dosya alışverişini kovan tablolarına yükleyin

Hive>load data inpath '/user/training/case1/data.csv' overwrite into table shopping;

Loading data to table default.shopping

Deleted hdfs://localhost/user/hive/warehouse/shopping

OK

Time taken: 2.798 seconds

c) Tablonun içgörülerini bilmek.

kovan> biçimlendirilmiş alışverişi tanımlayın;

Tamam

 # col_name data_type yorumu             

kullanıcı adı dizisi Yok                
şehir dizisi Yok                
meslek dizisi Yok                
satın alınan öğe int Yok                
iade öğe int Yok                

# Ayrıntılı Tablo Bilgileri             
Veritabanı: varsayılan                  
Sahip: eğitim                 
CreateTime: 21 Temmuz Salı 16:56:38 IST 2015     
Son Erişim Süresi: BİLİNMİYOR                  
Koruma Modu: Yok                     
Tutma: 0                        
Konum: hdfs://localhost/user/Hive/warehouse/shopping    
Tablo Türü: MANAGED_TABLE            
Tablo Parametreleri:                
        transient_lastDdlTime 1437478210          

# Depolama Bilgileri            
SerDe Kitaplığı: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe    
InputFormat: org.apache.hadoop.mapred.TextInputFormat         
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat     
Sıkıştırılmış: Hayır                       
Kova Sayısı: -1                       
Kova Sütunları: []                       
Sütunları Sırala: []                       
Depolama Tanım Paramları:             
        alan.delim ,                   
        serileştirme.format ,                   
Geçen süre: 0.302 saniye

3. Şimdi bu verilerin nasıl kullanılabileceğini görmemiz gerekiyor.

a) Onlara daha fazla indirim sunmak için en iyi müşteri olan kişileri bulmak. İlk önce sipariş edilen en yüksek miktarı bulacağız, ardından bu miktarı tüm kayıtlarla eşleştireceğiz ve en iyi müşterileri bulacağız.

hive> select * from shopping limit 5;

OK

Seattle Podiatric doctor 187 5

Detroit Lakes Engineering and natural sciences manager 168 11

Jackson Map editor 187 17

Miami Clinical manager 193 5

Santa Fe Springs Radiographer 207 20

Time taken: 0.335 seconds

hive> select max(purchaseditem) from shopping;

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks determined at compile time: 1

In order to change the average load for a reducer (in bytes):

set hive.exec.reducers.bytes.per.reducer=

In order to limit the maximum number of reducers:

set hive.exec.reducers.max=

In order to set a constant number of reducers:

set mapred.reduce.tasks=

Starting Job = job_201507212155_0001, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507212155_0001

Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507212155_0001

2015-07-21 23:16:01,887 Stage-1 map = 0%, reduce = 0%

2015-07-21 23:16:06,988 Stage-1 map = 100%, reduce = 0%

2015-07-21 23:16:16,075 Stage-1 map = 100%, reduce = 100%

Ended Job = job_201507212155_0001

OK

250

Time taken: 18.794 seconds

hive> select * from shopping where purchaseditem = 250;

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks is set to 0 since there's no reduce operator

Starting Job = job_201507212155_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507212155_0002

Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507212155_0002

2015-07-21 23:18:31,586 Stage-1 map = 0%, reduce = 0%

2015-07-21 23:18:33,598 Stage-1 map = 100%, reduce = 0%

2015-07-21 23:18:34,608 Stage-1 map = 100%, reduce = 100%

Ended Job = job_201507212155_0002

OK

Ablay1993 Seattle Ergonomist 250 7

Ablent71 Sugar Land Professional property manager 250 10

Affew1942 Alquippa Human resources consultant 250 13

Agar1976 Bell Oak Zookeeper 250 5

Akeem Manchester Marine 250 11

Alat1954 Columbus Assembler 250 7

Albertha Baton Rouge Mixing and blending machine operator 250 21

Amelia.Skiles Westfield Mediator 250 0

Amir_Spencer Polk City Epidemiologist 250 11

Angel.Thiel Hamilton Keying machine operator 250 21

Annalise_Langosh East Northport Fitness director 250 24

Ve böylece liste devam ediyor, şimdi şirket en iyi müşterileri bulabiliyor, bu adım MySQL üzerinde kolayca gerçekleştirilebilir, ancak yalnızca veriler çok küçük olduğunda veriler gigabitlerdeyken Hadoop günü kurtarmak için gelir.

b) Artık analist hangi iş sektörünün en iyi müşterisi olduğunu bulabilir, yani o sektörün ürünlerini artırmak için en çok satın alan kişilerin işlerini analiz edebilir.

hive> select distinct occupation from shopping where purchaseditem = 250;;

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks not specified. Estimated from input data size: 1

In order to change the average load for a reducer (in bytes):

set hive.exec.reducers.bytes.per.reducer=

In order to limit the maximum number of reducers:

set hive.exec.reducers.max=

In order to set a constant number of reducers:

set mapred.reduce.tasks=

Starting Job = job_201507220045_0006, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507220045_0006

Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507220045_0006

2015-07-22 01:09:52,904 Stage-1 map = 0%, reduce = 0%

2015-07-22 01:09:54,914 Stage-1 map = 100%, reduce = 0%

2015-07-22 01:10:01,968 Stage-1 map = 100%, reduce = 100%

Ended Job = job_201507220045_0006

OK

Account clerk

Accounting clerk

Actuarie

Administrative assistant.

Ve bunun gibi.

Artık bir muhasebe memurunun insanların bir şeyler satın aldığı en iyi iş sektörlerinden biri olduğunu bilerek, bu bölümdeki satışları artırabilirler.

4. Domuz Kullanmak

Şimdi, belirli bir şehirden kullanıcı adı gruplarını toplamak gibi bazı diğer işlevleri gerçekleştirmek için domuz kullanacağız ve bu şehirler en iyi tüketicilerdir.

a) Verileri domuza yükleyin

grunt> fulldata = load '/user/training/case1/' using PigStorage(',') as

(username:chararray,city:chararray,occupation:chararray, purchaseditem:int,returneditem:int);
grunt>dump fulldata;

(username:chararray,city:chararray,occupation:chararray, purchaseditem:int,returneditem:int);
grunt>dump fulldata;

b) Şimdi en iyi tüketicilerin kullanıcı adlarını şehirlere göre gruplayacağız.

En iyi tüketicilerin kayıtlarını ayırmak için

Hive>top = filter fulldata by purchaseditem==250;

Kullanıcı adlarını bir koleksiyon olarak almak için en çok tüketici şehirleri şimdi gruplandırın.

Veriler gruplandırılmıştır ancak sırasızdır.

Bu yüzden şimdi sipariş vermeliyiz.

Böylece nihai veriler sıralanır.

Artık bu verileri kullanabiliriz. Benzer şekilde tüketicinin en az olduğu şehirleri de çıkartabiliriz, bu şehirlerde şirket reklam ve tanıtım kampanyaları için daha fazla bütçe tanımlayabilir, böylece daha fazla insan portalla etkileşime girebilir.

Tüketim oranının yüksek olduğu şehirler ve tüketiciler için ise şirket yeni ürünler çıkarabilir ve çevresini genişletebilir.

Herhangi bir şüpheniz veya sorunuz varsa, bunları aşağıdaki yorumlar kutusunda belirtin.