我有一个从文件中读取的df
import uuid
df = spark.read.csv(path, sep="|", header=True)
然后我给它一个UUID列
uuidUdf= udf(lambda : str(uuid.uuid4()),StringType())
df = df.withColumn("UUID",uuidUdf())
现在我创建一个视图
view = df.createOrReplaceTempView("view")
现在我创建了两个从视图中获取数据的新数据帧,这两个数据帧都将使用原始的UUID列
df2 = spark.sql("select UUID from view")
df3 = spark.sql("select UUID from view")
所有3个数据帧都有不同的UUID,有没有办法在每个数据帧中保持它们相同
Spark使用惰性计算机制,当您调用
show
或其他操作时,将调用计算。这意味着每次调用操作时,uuid
都会重新计算。为了避免这种情况 在调用createOrReplaceTempView
之前,您需要cache
这个df
,下面是您应该做的相关问题 更多 >
编程相关推荐