我正在编写一个将返回spark数据帧的函数。该方法将一个包含数据的csv文件作为一个参数,将模式作为另一个参数。
我用过:
df = sqlContext.read.format('csv').options(quote='"',escape='"').
schema(input_schema).load(filename)
其中input_schema
是模式,文件名是作为方法参数接收的文件位置。当架构不包含ArrayType时,此方法工作正常,但在架构包含ArrayType时失败。它指示数组为未知类型。
为什么ArrayType不起作用?模式为动态模式时如何处理CSV中的ArrayType(意味着可以将任何列定义为数组类型)