在spark streaming 过程中遇到数据不对的地方,最有check 到时我们RDD到dataframe 出现了问题
rowRdd = rdd.flatMap(build_data_row) statsRdd = rowRdd.map(map_to_id) dfstats = sqlContext.createDataFrame(statsRdd, schema=docShema)
上面的程序中map_to_id 这个function 尽管return Row(.......) 但是在sqlContext.createDataFrame 中出现数据跟预期的不一样的情况最后从spark 的文档发现, RDD ==> DataFrame 中要指定schema, 或者sampleRatio 的, 如果没有指定的话,可能出现数据的错乱
尤其是在table 字段很多的情况下.
PS:
data – an RDD of Row/tuple/list/dict, list, or pandas.DataFrameschema – a StructType or list of names of columnssamplingRatio – the sample ratio of rows used for inferring
新闻热点
疑难解答