J'ai feather format file sales.fea
que j'utilise pour échanger des données entre python
et R.
En R, j'utilise la commande suivante:
df = as.data.frame(feather::read_feather("sales.fea"))
En python, j'ai utilisé cela:
df = feather.read_dataframe("sales.fea")
Quel est le moyen le plus rapide/le meilleur de charger des données de ce fichier en mémoire dans une instance Spark gérée à partir de pyspark
?
Je ne veux pas utiliser de pandas pour charger des données, car cela crée des segfaults pour mon fichier de plumes de 19 Go, créé à partir de 45 Go de csv.
Ma pensée est que Spark est tellement tendance et plume aussi, et je m'attends à une manière plus native que de passer par des solutions provisoires sous-efficaces.
Vous pouvez convertir un cadre de données pandas en un cadre de données Spark comme suit.
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
spark_df = sqlContext.createDataFrame(pandas_df)
depuis pyspark import SparkContext
sc = SparkContext("local", "App Name")
sql = SQLContext(sc)
puis utilisez createDataFrame comme ci-dessous:
spark_df = sql.createDataFrame(pandas_df)
Peut-être pourriez-vous envisager de passer au format parquet? On dirait plus approprié à votre cas d'utilisation, voir Quelles sont les différences entre plume et parquet?