from __future__ import annotations
def test_col_col_string_numeric_issue_repro() -> None:
import robin_sparkless as rs
spark = rs.SparkSession.builder().app_name("issue_366").get_or_create()
df = spark.createDataFrame(
[{"id": 1, "label": "1"}],
[("id", "int"), ("label", "string")],
)
rows = df.filter(rs.col("id") == rs.col("label")).collect()
assert len(rows) == 1
assert rows[0]["id"] == 1
assert rows[0]["label"] == "1"
def test_col_col_string_numeric_no_match() -> None:
import robin_sparkless as rs
spark = rs.SparkSession.builder().app_name("issue_366").get_or_create()
df = spark.createDataFrame(
[{"n": 42, "s": "abc"}, {"n": 1, "s": "1"}],
[("n", "int"), ("s", "string")],
)
rows = df.filter(rs.col("n") == rs.col("s")).collect()
assert len(rows) == 1
assert rows[0]["n"] == 1
assert rows[0]["s"] == "1"
def test_col_col_numeric_string_reversed() -> None:
import robin_sparkless as rs
spark = rs.SparkSession.builder().app_name("issue_366").get_or_create()
df = spark.createDataFrame(
[{"id": 99, "label": "99"}],
[("id", "int"), ("label", "string")],
)
rows = df.filter(rs.col("label") == rs.col("id")).collect()
assert len(rows) == 1