2016-09-02 2 views
0

В настоящее время я могу разобрать текстовый файл искрового DataFrame по пути API RDD со следующим кодом:Спарк Анализировать Текстовый файл в DataFrame

def row_parse_function(raw_string_input): 
    # Do parse logic... 
    return pyspark.sql.Row(...) 

raw_rdd = spark_context.textFile(full_source_path) 
# Convert RDD of strings to RDD of pyspark.sql.Row 
row_rdd = raw_rdd.map(row_parse_function).filter(bool) 
# Convert RDD of pyspark.sql.Row to Spark DataFrame. 
data_frame = spark_sql_context.createDataFrame(row_rdd, schema) 

Является ли этот нынешний подход идеально?

Или есть лучший способ сделать это, не используя старый API RDD.

FYI, Spark 2.0.

+0

Мои данные не отформатированы csv. – clay

ответ

0

Клей,

Это хороший подход, чтобы загрузить файл, который не имеет определенный формат вместо CSV, JSON, ORC, паркет или из базы данных.

Если у вас есть какая-то конкретная логика для работы над этим, это лучший способ сделать это. Использование RDD для такой ситуации, когда вам нужно запустить определенную логику в ваших данных, которая не является тривиальной.

Вы можете прочитать here об использовании API-интерфейсов Spark. И вы в ситуации с RDD - лучший подход.