我有一堆CSV文件,正在使用ETL工具Informatica以ORC格式加载到HDFS中。加载到HDFS后,我想提取ORC文件的元数据(列名,数据类型)。
但是当我将ORC文件加载到Spark数据帧中时,所有列都被评估为string
类型。我正在使用以下命令来实现这一目标:
df = sqlContext.sql("SELECT * FROM orc.`<HDFS_path>`");
df.printSchema()
我对Spark和HDFS完全陌生。我试图理解为什么每一列都是string
类型的结果。使用csv源文件创建ORC时,这是正常行为吗(与我们使用哪种工具无关)?还是我在火花中做某事导致此错误?
使用以下选项
val df = spark.read.format("orc").option("inferschema", "true").load(<path>)