Hi, Fletcher.
case class can help construct complex structure.
and also,  RDD, StructType and StructureField are helpful if you need.

However,
the code is a little confusing,

source.map{ row => {
      val key = row(0)
      val buff = new ArrayBuffer[Row]()
      buff += row
      (key,buff)
   }
}

The expected result is (row[0], row), right?
Would you like to explain its purpose?








On Sun, Feb 26, 2017 at 8:36 PM, Stephen Fletcher <
stephen.fletc...@gmail.com> wrote:

> sorry here's the whole code
>
> val source = spark.read.format("parquet").load("/emrdata/sources/very_lar
> ge_ds")
>
> implicit val mapEncoder = org.apache.spark.sql.Encoders.
> kryo[(Any,ArrayBuffer[Row])]
>
> source.map{ row => {
>       val key = row(0)
>       val buff = new ArrayBuffer[Row]()
>       buff += row
>       (key,buff)
>    }
> }
>
> ...
>
> On Sun, Feb 26, 2017 at 7:31 AM, Stephen Fletcher <
> stephen.fletc...@gmail.com> wrote:
>
>> I'm attempting to perform a map on a Dataset[Row] but getting an error on
>> decode when attempting to pass a custom encoder.
>>  My code looks similar to the following:
>>
>>
>> val source = spark.read.format("parquet").load("/emrdata/sources/very_lar
>> ge_ds")
>>
>>
>>
>> source.map{ row => {
>>       val key = row(0)
>>
>>    }
>> }
>>
>
>

Reply via email to