from tests.tools.parity_base import ParityTestBase
from sparkless.testing import get_imports
class TestDatetimeFunctionsParity(ParityTestBase):
def test_year(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "year")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.year(df.hire_date))
self.assert_parity(result, expected)
def test_month(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "month")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.month(df.hire_date))
self.assert_parity(result, expected)
def test_dayofmonth(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "dayofmonth")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.dayofmonth(df.date))
self.assert_parity(result, expected)
def test_dayofweek(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "dayofweek")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.dayofweek(df.hire_date))
self.assert_parity(result, expected)
def test_date_add(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "date_add")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.date_add(df.hire_date, 30))
self.assert_parity(result, expected)
def test_date_sub(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "date_sub")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.date_sub(df.hire_date, 30))
self.assert_parity(result, expected)
def test_date_format(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "date_format")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.date_format(df.hire_date, "yyyy-MM"))
self.assert_parity(result, expected)
def test_to_date(self, spark):
imports = get_imports()
F = imports.F
expected = self.load_expected("datetime", "to_date")
df = spark.createDataFrame(expected["input_data"])
result = df.select(F.to_date(df.hire_date))
self.assert_parity(result, expected)