Please the last line of convertToCatalyst(a: Any) : case other => other
FYI On Mon, Feb 15, 2016 at 12:09 AM, Fabian Böhnlein < fabian.boehnl...@gmail.com> wrote: > Interesting, thanks. > > The (only) publicly accessible method seems *convertToCatalyst*: > > https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala#L425 > > Seems it's missing some types like Integer, Short, Long... I'll give it a > try. > > Thanks, > Fabian > > > On 12/02/16 05:53, Yogesh Mahajan wrote: > > Right, Thanks Ted. > > On Fri, Feb 12, 2016 at 10:21 AM, Ted Yu <yuzhih...@gmail.com> wrote: > >> Minor correction: the class is CatalystTypeConverters.scala >> >> On Thu, Feb 11, 2016 at 8:46 PM, Yogesh Mahajan < >> <ymaha...@snappydata.io>ymaha...@snappydata.io> wrote: >> >>> CatatlystTypeConverters.scala has all types of utility methods to >>> convert from Scala to row and vice a versa. >>> >>> >>> On Fri, Feb 12, 2016 at 12:21 AM, Rishabh Wadhawan < >>> <rishabh...@gmail.com>rishabh...@gmail.com> wrote: >>> >>>> I had the same issue. I resolved it in Java, but I am pretty sure it >>>> would work with scala too. Its kind of a gross hack. But what I did is say >>>> I had a table in Mysql with 1000 columns >>>> what is did is that I threw a jdbc query to extracted the schema of the >>>> table. I stored that schema and wrote a map function to create StructFields >>>> using structType and Row.Factory. Then I took that table loaded as a >>>> dataFrame, event though it had a schema. I converted that data frame into >>>> an RDD, this is when it lost the schema. Then performed something using >>>> that RDD and then converted back that RDD with the structfield. >>>> If your source is structured type then it would be better if you can >>>> load it directly as a DF that way you can preserve the schema. However, in >>>> your case you should do something like this >>>> List<StructFrield> fields = new ArrayList<StructField> >>>> for(keys in MAP) >>>> fields.add(DataTypes.createStructField(keys, DataTypes.StringType, >>>> true)); >>>> >>>> StrructType schemaOfDataFrame = DataTypes.createStructType(conffields); >>>> >>>> sqlcontext.createDataFrame(rdd, schemaOfDataFrame); >>>> >>>> This is how I would do it to make it in Java, not sure about scala >>>> syntax. Please tell me if that helped. >>>> >>>> On Feb 11, 2016, at 7:20 AM, Fabian Böhnlein < >>>> <fabian.boehnl...@gmail.com>fabian.boehnl...@gmail.com> wrote: >>>> >>>> Hi all, >>>> >>>> is there a way to create a Spark SQL Row schema based on Scala data >>>> types without creating a manual mapping? >>>> >>>> That's the only example I can find which doesn't require >>>> spark.sql.types.DataType already as input, but it requires to define them >>>> as Strings. >>>> >>>> * val struct = (new StructType)* .add("a", "int")* .add("b", "long")* >>>> .add("c", "string") >>>> >>>> >>>> >>>> Specifically I have an RDD where each element is a Map of 100s of >>>> variables with different data types which I want to transform to a >>>> DataFrame >>>> where the keys should end up as the column names: >>>> >>>> Map ("Amean" -> 20.3, "Asize" -> 12, "Bmean" -> ....) >>>> >>>> >>>> Is there a different possibility than building a mapping from the >>>> values' .getClass to the Spark SQL DataTypes? >>>> >>>> >>>> Thanks, >>>> Fabian >>>> >>>> >>>> >>>> >>>> >>> >> > >