我有一个名为df的数据帧,其功能是col1、col2、col3.它们的价值观应该结合在一起,并产生结果.每个组合将产生的结果在MAPPING_TABLE中定义.
但是,MAPPING_TABLE有时具有值‘*’.这意味着该功能可以有任何值,它不会影响结果.
这使得连接不可能(?)因为我需要判断在每行的连接中使用哪些特性.
什么才是解决这个问题的好办法呢?
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# Create a Spark session
spark = SparkSession.builder.appName("example").getOrCreate()
# Example DataFrames
map_data = [('a', 'b', 'c', 'good'), ('a', 'a', '*', 'very good'),
('b', 'd', 'c', 'bad'), ('a', 'b', 'a', 'very good'),
('c', 'c', '*', 'very bad'), ('a', 'b', 'b', 'bad')]
columns = ["col1", "col2", 'col3', 'result']
mapping_table = spark.createDataFrame(X, columns)
data =[[('a', 'b', 'c'), ('a', 'a', 'b' ),
('c', 'c', 'a' ), ('c', 'c', 'b' ),
('a', 'b', 'b'), ('a', 'a', 'd')
]]
columns = ["col1", "col2", 'col3']
df = spark.createDataFrame(data, columns)