Почему быстрее читать в .csv как RDD в Pyspark? - PullRequest
0 голосов
/ 04 октября 2019

Надеясь, что кто-то может помочь пролить свет на это. Я читаю 35Gb .csv с S3.

Я ожидал, что он будет быстрее читать в .csv как Dataframe. Мое обоснование состояло в том, что, поскольку нет никакой лямбды-Python, которая должна быть выполнена для анализа CSV, то нет никакой перекрестной стоимости сериализации JVM (как при выполнении UDF Python):

my_schema = StructType([
    StructField('A', IntegerType()),
    StructField('B', IntegerType()),
    StructField('C', IntegerType())
])

my_df = spark.read.csv("s3a://bucket/folder", header=False, schema=my_schema)

train_df.show(n=5)

Однако,после тестирования я понял, что чтение .csv in как RDD на самом деле значительно быстрее.

my_rdd = sc.textFile("s3a://mybucket/folder) \
    .map(lambda x: x.split(',')) 

Моя ментальная модель здесь кажется совершенно неосновной.

  • Есть лина самом деле стоимость перекрестной сериализации JVM связана с выполнением лямбда-выражений Python на RDD?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...