Here is a Jupyter notebook that creates a keyspace and tables, loads data, queries the data, does the `regexp_replace` transform, and then attempts a join. I've also included a block that does a transform and a join without using Cassandra and it works.
I run pyspark using the command "pyspark --packages com.datastax.spark:spark-cassandra-connector_2.12:3.0.0 --conf spark.sql.extensions=com.datastax.spark.connector.CassandraSparkExtensions"
I also set the environment variables: "export PYSPARK_DRIVER_PYTHON=jupyter export PYSPARK_DRIVER_PYTHON_OPTS='notebook'" so that my Jupyter notebook has access to the packages and pyspark libraries.
I'm running with opensource Cassandra 3.11.9, spark-cassandra-connector "spark-cassandra-connector_2.12:3.0.0" and Spark "spark-3.0.1-bin-hadoop3.2"
Harrison