"Come posso importare un file .csv in frame di dati pyspark?" - ci sono molti modi per farlo; il più semplice sarebbe avviare pyspark con il modulo spark-csv di Databrick. Puoi farlo avviando pyspark con
pyspark --packages com.databricks:spark-csv_2.10:1.4.0
quindi puoi seguire i seguenti passi:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('cars.csv')
L'altro metodo sarebbe leggere nel file di testo come un rdd usando
myrdd = sc.textFile("yourfile.csv").map(lambda line: line.split(","))
Quindi trasforma i tuoi dati in modo che ogni elemento sia nel formato corretto per lo schema (ad esempio Ints, String, Float, ecc.). Ti consigliamo di utilizzare
>>> from pyspark.sql import Row
>>> Person = Row('name', 'age')
>>> person = rdd.map(lambda r: Person(*r))
>>> df2 = sqlContext.createDataFrame(person)
>>> df2.collect()
[Row(name=u'Alice', age=1)]
>>> from pyspark.sql.types import *
>>> schema = StructType([
... StructField("name", StringType(), True),
... StructField("age", IntegerType(), True)])
>>> df3 = sqlContext.createDataFrame(rdd, schema)
>>> df3.collect()
[Row(name=u'Alice', age=1)]
Riferimento: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Inoltre, per favore dimmi come posso importare il file xlsx?" - I file Excel non vengono utilizzati in "Big Data"; Spark è pensato per essere utilizzato con file o database di grandi dimensioni. Se hai un file Excel di 50 GB di dimensioni, allora stai facendo cose sbagliate. Excel non sarebbe nemmeno in grado di aprire un file di quelle dimensioni; dalla mia esperienza, qualsiasi cosa sopra 20 MB ed Excel muore.