1
我试图将数据帧转换为RDD。我的数据框已键入列,就像这样:如何在转换Scala Spark DF - > RDD时保留类型?
df.printSchema
root
|-- _c0: integer (nullable = true)
|-- num_hits: integer (nullable = true)
|-- session_name: string (nullable = true)
|-- user_id: string (nullable = true)
当我去将其转换为使用df.rdd
的RDD,我得到一个RDD是类型Array[org.apache.spark.sql.Row]
的,但是当我访问使用每个条目rdd(0)(0)
,rdd(0)(1)
等。我得到他们都有Any
类型。如何保持DataFrame将其转换为RDD时的相同输入?换句话说:我如何让我的rdd中的列具有类型Int
,Int
, String
, String
,以便它们与Dataframe匹配?
这样做。谢谢! df.rdd没有选择类型是否有原因? – tSchema
因为DataFrame不知道你想要什么类型。作为[(Int,Int,String,String)]'基本上只是告诉Spark你想将Row转换为'(Int,Int,String,String)' – zsxwing