Ho un file in hdfs che è distribuito attraverso i nodi nel cluster.Campionamento di un grande set di dati distribuiti utilizzando pyspark/spark
Sto cercando di ottenere un campione casuale di 10 righe da questo file.
nel guscio pyspark, ho letto il file in un RDD utilizzando:
>>> textFile = sc.textFile("/user/data/myfiles/*")
e poi voglio prendere semplicemente un campione ... la cosa bella di Spark è che ci sono comandi come takeSample
, Purtroppo penso che sto facendo qualcosa di sbagliato, perché il seguente prende un sacco di tempo:
>>> textFile.takeSample(False, 10, 12345)
così ho cercato di creare una partizione su ciascun nodo, e poi istruendo ogni nodo di assaggiare quella partizione usando il seguente comando:
>>> textFile.partitionBy(4).mapPartitions(lambda blockOfLines: blockOfLines.takeSample(False, 10, 1234)).first()
ma questo dà un errore ValueError: too many values to unpack
:
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/worker.py", line 77, in main
serializer.dump_stream(func(split_index, iterator), outfile)
File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/serializers.py", line 117, in dump_stream
for obj in iterator:
File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/rdd.py", line 821, in add_shuffle_key
for (k, v) in iterator:
ValueError: too many values to unpack
Come posso assaggiare 10 linee di dati di grandi dimensioni distribuiti impostato utilizzando scintilla o pyspark?
non credo che questo è un problema con la scintilla, vedere http://stackoverflow.com/questions/7053551/python-valueerror-too-many-values-to-unpack – aaronman
@aaronman siete sulla strada giusta nel percepire che l'errore "troppi valori" è sicuramente un errore python. Aggiungerò ulteriori dettagli sul messaggio di errore. La mia impressione è che ci sia qualcosa di sbagliato nel mio codice pyspark: sei in grado di eseguire questo codice con successo sul tuo setup di accensione? – mgoldwasser
Uso solo la scala scintilla API, penso che lo stile funzionale di scala si adatti molto bene a Mapreduce in generale – aaronman