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的存儲,谷歌存儲加載數據是確切的。那麼是否有更好的方法比映射每一行並刪除雙引號? –