Spark-csv 数据源:推断数据类型

7

  1. StringTypes 是 SparkSQL 中的一种字段类型。
  2. 您所询问的内容不是很清楚,请您更具体地说明您想要实现什么。
- eliasah
1
我在询问自动类型推断,这在内置数据源(如JSON)中是可用的。例如,如果使用sqlContext.jsonFile("...")从JSON文件创建df,该文件具有一个整数和一个字符串字段,则这些类型将在模式中定义。CSV数据源格式是否支持此功能? - Oleg Shirokikh
2个回答

7

从Spark 2开始,我们可以使用选项'inferSchema'来读取CSV文件,示例如下:

getSparkSession().read().option("inferSchema", "true").csv("YOUR_CSV_PATH")



3

很遗憾,目前还不支持这个功能,但它将是一个非常有用的特性。 目前必须在 DLL 中声明它们。根据我们拥有的文档:

header:如果设置为 true,则文件的第一行将用于命名列,并且不会包含在数据中。 所有类型都将被假定为字符串。 默认值为 false。

这就是你看到的内容。

请注意,在查询时推断模式是可能的,例如:

select sum(mystringfield) from mytable

2
谢谢,这正是我想的,感谢您的确认。我同意 - 这将是非常好的功能。精确类型匹配可能不可行,但可以使用各种启发式方法:基于列中前N个记录的类型,基于随机N个记录的类型,基于N/大小分数的类型等。 - Oleg Shirokikh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接