如何在Spark SQL中缓存和持久化临时表?

4

我有一段可读取文本文件并将其作为注册临时表存储在内存中的工作代码。我希望使用脚本或模块导入加载一组这些表,然后进行交互式查询。如果我将此代码放入脚本和函数中,应该返回哪个对象?sc上下文?表格?HadoopRDD?

file = "/file.tsv"
lines = sc.textFile(file)
parts = lines.map(lambda l: l.split("\t")).filter(lambda line:len(line)==7)

active_sessions = parts.map(lambda p: Row( 
    session=p[0]
    , user_id=p[1]
    , created=p[2]
    , updated=p[3]
    , id=p[4]
    , deleted=p[5]
    , resource_id=p[6]))

schemaTable = sqlContext.inferSchema(active_sessions)
schemaTable.registerTempTable("active_sessions")
sqlContext.cacheTable("active_sessions")
1个回答

0

我遇到了同样的问题,最终决定退货:

return sqlContext.table("active_sessions")

我将它注册为表而不是临时表,但是它也可以与临时表一起使用。


临时表和普通表有什么区别?普通表是否会存储到缓存中,而临时表则不会? - pandasCat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接