Hello,

I was wondering if somebody is able to help me get to the bottom of a null 
pointer exception I'm seeing in my code. I've managed to narrow down a problem 
in a larger class to my use of Joda's DateTime functions. I've successfully run 
my code in scala, but I've hit a few problems when adapting it to run in spark.

Spark version: 1.3.0
Scala version: 2.10.4
Java HotSpot 1.7

I have a small case class called Transaction, which looks something like this:

case class Transaction(date : org.joda.time.DateTime = new 
org.joda.time.DateTime())

I have an RDD[Transactions] trans:
org.apache.spark.rdd.RDD[Transaction] = MapPartitionsRDD[4] at map at 
<console>:44

I am able to run this successfully:

val test = trans.map(_.date.minusYears(10))
test.take(1)

However if I do:

val groupedTrans = trans.groupBy(_.account)

//For each group, process transactions in turn:
val test = groupedTrans.flatMap { case (_, transList) =>
  transList.map {transaction =>
    transaction.date.minusYears(10)
  }
}
test.take(1)

I get:

java.lang.NullPointerException
        at org.joda.time.DateTime.minusYears(DateTime.java:1268)

Should the second operation not be equivalent to the first .map one? (It's a 
long way round of producing my error - but it's extremely similar to what's 
happening in my class).

I've got a custom registration class for Kryo which I think is working - before 
I added this the original .map did not work - but shouldn't it be able to 
serialize all instances of Joda DateTime?

Thank you for any help / pointers you can give me.

Kind Regards,
Alex.

Alex Spencer

Emails aren't always secure, and they may be intercepted or changed after
they've been sent. Santander doesn't accept liability if this happens. If you
think someone may have interfered with this email, please get in touch with the
sender another way. This message doesn't create or change any contract.
Santander doesn't accept responsibility for damage caused by any viruses
contained in this email or its attachments. Emails may be monitored. If you've
received this email by mistake, please let the sender know at once that it's
gone to the wrong person and then destroy it without copying, using, or telling
anyone about its contents.
Santander UK plc Reg. No. 2294747 and Abbey National Treasury Services plc Reg.
No. 2338548 Registered Offices: 2 Triton Square, Regent's Place, London NW1 3AN.
Registered in England. www.santander.co.uk. Authorised by the Prudential
Regulation Authority and regulated by the Financial Conduct Authority and the
Prudential Regulation Authority. FCA Reg. No. 106054 and 146003 respectively.
Santander Sharedealing is a trading name of Abbey Stockbrokers Limited Reg. No.
02666793. Registered Office: Kingfisher House, Radford Way, Billericay, Essex
CM12 0GZ. Authorised and regulated by the Financial Conduct Authority. FCA Reg.
No. 154210. You can check this on the Financial Services Register by visiting
the FCA’s website www.fca.org.uk/register or by contacting the FCA on 0800 111
6768. Santander UK plc is also licensed by the Financial Supervision Commission
of the Isle of Man for its branch in the Isle of Man. Deposits held with the
Isle of Man branch are covered by the Isle of Man Depositors’ Compensation
Scheme as set out in the Isle of Man Depositors’ Compensation Scheme Regulations
2010. In the Isle of Man, Santander UK plc’s principal place of business is at
19/21 Prospect Hill, Douglas, Isle of Man, IM1 1ET. Santander and the flame logo
are registered trademarks.
Santander Asset Finance plc. Reg. No. 1533123. Registered Office: 2 Triton
Square, Regent’s Place, London NW1 3AN. Registered in England. Santander
Corporate & Commercial is a brand name used by Santander UK plc, Abbey National
Treasury Services plc and Santander Asset Finance plc.
Ref:[PDB#1-4A]
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org

Reply via email to