在sqlContext

时间:2017-05-09 11:42:10

标签: scala apache-spark cassandra pyspark rdd

我正在研究apache spark的教程,我正在使用Cassandra数据库,Spark2.0和Python

我正在尝试使用本教程对sql Query执行RDD操作, https://spark.apache.org/docs/2.0.0-preview/sql-programming-guide.html 它说#SQL查询的结果是RDD并支持所有正常的RDD操作。

我目前有这行代码

sqlContext = SQLContext(sc)
results = sqlContext.sql("SELECT word FROM tweets where word like '%@%'").show(20, False)
    df = sqlContext.read\
    .format("org.apache.spark.sql.cassandra")\
    .options(table="wordcount", keyspace= "demo")\
    .load()
df.select("word")

df.createOrReplaceTempView("tweets")

usernames = results.map(lambda p: "User: " + p.word)
for name in usernames.collect():
    print(name)

AttributeError:' NoneType'对象没有属性' map' 如果变量结果是sql Query的结果,为什么我会收到此错误?任何人都可以向我解释这个。

一切正常,桌面打印,只有我得到错误的时候才是我 尝试进行RDD操作。 请记住sc是现有的火花背景

1 个答案:

答案 0 :(得分:1)

因为show()只打印内容。

使用:

results = sqlContext.sql("SELECT word FROM tweets where word like '%@%'")
result.show(20, False)