目前,我可以通过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)目前的做法是否理想?
或者,是否有更好的方法来做到这一点,而不使用旧的RDD API。
FYI,Spark2.0
发布于 2016-09-02 17:51:44
克莱,
这是一种很好的方法来加载没有特定格式的文件,而不是CSV、JSON、ORC、Parquet或数据库。
如果您有任何特定的逻辑来处理它,这是最好的方法。在这种情况下,当您需要在数据中运行特定的逻辑时,使用RDD是非常重要的。
您可以阅读这里关于Spark的使用情况。而您在RDD的情况下是最好的方法。
https://stackoverflow.com/questions/39297089
复制相似问题