0
我想在从json读取时指定模式,但是当尝试将数字映射到Double时失败,我尝试使用FloatType和IntType而没有快乐!通过Spark在JSON上指定模式
当推断架构客户ID设置为字符串,我想将它转换为Double
所以DF1被损坏而DF2显示
也仅供参考,我需要为我想这是通用喜欢它适用于任何JSON,我指定的以下模式作为问题的一个例子,我现在面临
import org.apache.spark.sql.types.{BinaryType, StringType, StructField, DoubleType,FloatType, StructType, LongType,DecimalType}
val testSchema = StructType(Array(StructField("customerid",DoubleType)))
val df1 = spark.read.schema(testSchema).json(sc.parallelize(Array("""{"customerid":"535137"}""")))
val df2 = spark.read.json(sc.parallelize(Array("""{"customerid":"535137"}""")))
df1.show(1)
df2.show(1)
任何帮助,将不胜感激,我相信我失去了一些东西明显,但对于我,我的生活不能告诉它是什么!
让我澄清一下,我加载一个使用sparkContext.newAPIHadoopRDD
所以转换RDD [JSONObject的]到数据帧,而应用模式,以它
嗨@流氓 - 一个可悲的不知道如何做到这一点,因为我从类似HDFS的存储,谷歌存储加载数据是确切的。那么是否有更好的方法比映射每一行并删除双引号? –