aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/pyspark/sql/tests.py5
-rw-r--r--python/pyspark/sql/types.py6
2 files changed, 9 insertions, 2 deletions
diff --git a/python/pyspark/sql/tests.py b/python/pyspark/sql/tests.py
index 59a891bd7c..fc778631d9 100644
--- a/python/pyspark/sql/tests.py
+++ b/python/pyspark/sql/tests.py
@@ -168,6 +168,11 @@ class DataTypeTests(unittest.TestCase):
t3 = DecimalType(8)
self.assertNotEqual(t2, t3)
+ # regression test for SPARK-10392
+ def test_datetype_equal_zero(self):
+ dt = DateType()
+ self.assertEqual(dt.fromInternal(0), datetime.date(1970, 1, 1))
+
class SQLTests(ReusedPySparkTestCase):
diff --git a/python/pyspark/sql/types.py b/python/pyspark/sql/types.py
index f84d08d709..8bd58d69ee 100644
--- a/python/pyspark/sql/types.py
+++ b/python/pyspark/sql/types.py
@@ -168,10 +168,12 @@ class DateType(AtomicType):
return True
def toInternal(self, d):
- return d and d.toordinal() - self.EPOCH_ORDINAL
+ if d is not None:
+ return d.toordinal() - self.EPOCH_ORDINAL
def fromInternal(self, v):
- return v and datetime.date.fromordinal(v + self.EPOCH_ORDINAL)
+ if v is not None:
+ return datetime.date.fromordinal(v + self.EPOCH_ORDINAL)
class TimestampType(AtomicType):