[英]Caching ordered Spark DataFrame creates unwanted job
我想將RDD轉換為DataFrame並想要緩存RDD的結果:
from pyspark.sql import *
from pyspark.sql.types import *
import pyspark.sql.functions as fn
schema = StructType([StructField('t', DoubleType()), StructField('value', DoubleType())])
df = spark.createDataFrame(
sc.parallelize([Row(t=float(i/10), value=float(i*i)) for i in range(1000)], 4), #.cache(),
schema=schema,
verifySchema=False
).orderBy("t") #.cache()
為什么cache
在這種情況下生成作業? 如何避免cache
的作業生成(緩存DataFrame而不是RDD)?
編輯 :我調查了更多的問題,發現沒有orderBy("t")
沒有生成任務。 為什么?
我提交了一張錯誤機票 ,因為以下原因關閉了:
緩存需要支持RDD。 這需要我們也知道支持分區,這對於全局訂單來說有點特殊:它觸發作業(掃描),因為我們需要確定分區邊界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.