如何在Spark SQL中缓存和保留临时表?

时间:2015-03-23 12:59:59

标签: caching python-import apache-spark-sql pyspark

我有工作代码用于读取文本文件并在内存中用作已注册的临时表。我想使用脚本或模块导入加载一组这些表,然后以交互方式查询它们。如果将此代码放入脚本和函数中,我应该返回哪个对象? 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 :(得分:0)

我遇到了同样的问题并最终返回:

return sqlContext.table("active_sessions")

我已将它注册为表而不是临时表,但它也适用于临时表。