pyspark'ı kullanmaya başlama

Pyspark’ta Örnek Kelime Sayısı

Temeldeki örnek, resmi pyspark belgelerinde verilen örnektir. Bu örneğe ulaşmak için lütfen buraya tıklayın.

# the first step involves reading the source text file from HDFS 
text_file = sc.textFile("hdfs://...")

# this step involves the actual computation for reading the number of words in the file
# flatmap, map and reduceByKey are all spark RDD functions
counts = text_file.flatMap(lambda line: line.split(" ")) \
             .map(lambda word: (word, 1)) \
             .reduceByKey(lambda a, b: a + b)

# the final step is just saving the result.
counts.saveAsTextFile("hdfs://...")

PySpark Kullanarak S3’ten Veri Tüketme

AWS S3 kovasından veri tüketebileceğiniz iki yöntem vardır.

  1. sc.textFile (veya sc.wholeTextFiles) API’sini kullanma: Bu api, HDFS ve yerel dosya sistemi için de kullanılabilir.
aws_config = {}  # set your aws credential here
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", aws_config['aws.secret.access.key'])
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", aws_config['aws.secret.access.key'])
s3_keys = ['s3n/{bucket}/{key1}', 's3n/{bucket}/{key2}']
data_rdd = sc.wholeTextFiles(s3_keys)
  1. Özel API kullanarak okuma (Boto indiricisi söyleyin):
def download_data_from_custom_api(key):
    # implement this function as per your understanding (if you're new, use [boto][1] api)
    # don't worry about multi-threading as each worker will have single thread executing your job
    return ''

s3_keys = ['s3n/{bucket}/{key1}', 's3n/{bucket}/{key2}']
# numSlices is the number of partitions. You'll have to set it according to your cluster configuration and performance requirement
key_rdd = sc.parallelize(s3_keys, numSlices=16) 

data_rdd = key_rdd.map(lambda key: (key, download_data_from_custom_api(key))

Yaklaşım 2’yi kullanmanızı tavsiye ederim çünkü yaklaşım 1 ile çalışırken sürücü tüm verileri indirir ve işçiler sadece onu işler. Bunun aşağıdaki dezavantajları vardır:

  1. Veri boyutu arttıkça belleğiniz tükenir.
  2. Veriler indirilene kadar çalışanlarınız boşta oturacak

Kurulum veya Kurulum

pyspark’ın kurulması veya kurulmasıyla ilgili ayrıntılı talimatlar.