我正在研究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是现有的火花背景
答案 0 :(得分:1)
因为show()
只打印内容。
使用:
results = sqlContext.sql("SELECT word FROM tweets where word like '%@%'")
result.show(20, False)