Spark解析文本文件到DataFrame

时间:2016-09-02 16:32:38

标签: apache-spark pyspark

目前,我可以通过RDD API使用以下代码将文本文件解析为Spark 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)

这种方法目前是理想的吗?

或者,如果不使用旧的RDD API,还有更好的方法吗?

仅供参考,Spark 2.0。

1 个答案:

答案 0 :(得分:0)

粘土,

这是一种很好的方法来加载没有特定格式的文件,而不是CSV,JSON,ORC,Parquet或来自数据库。

如果你有任何特定的逻辑来处理它,这是最好的方法。当您需要在数据中运行非常微不足道的特定逻辑时,使用RDD就是出于这种情况。

您可以阅读here有关Spark的API的用法。而你处于RDD的情况是最好的方法。

相关问题