I'm not that familiar with SQL variables. I can use them in queries, but can't seem to get the DDL to use them.
What you are trying to do is simpler in python. See below for an example.
table_suffix = 'suffix';
spark.sql(f"""
CREATE TABLE IF NOT EXISTS shawn.default.table_with_{table_suffix} (
id INT,
name STRING,
age INT
)
""" )
spark.sql(f"""
INSERT INTO shawn.default.table_with_{table_suffix}
VALUES
(1, 'Batman', 30),
(2, 'Robin', 20)
""" )
df = spark.read.table(f"shawn.default.table_with_{table_suffix}")
display(df)