【发布时间】:2016-03-17 19:31:43
【问题描述】:
我正在 casandra 2.1.12 上测试来自 spark-1.5.1 的一些基本查询。当我尝试按“=”(即表中的操作列)拆分数据时遇到此有线问题。它可以正确解析“|”的情况。它返回单个字符。为什么会这样。
此外,动作列的值没有完整显示。那么,如何在标准输出上查看列的完整值。
import org.apache.spark.sql.cassandra.CassandraSQLContext
import org.apache.spark.sql.cassandra._
import org.apache.spark.sql
val csc = new CassandraSQLContext(sc)
csc.setKeyspace("test")
val maxDF = csc.sql("select action, split(action, '=')[0], split(action, '=')[1], split(action, '=')[2] from testdata" )
maxDF.show
拆分'='的输出
scala> maxDF.show
+--------------------+------+-----------+---------+
| action| _c1| _c2| _c3|
+--------------------+------+-----------+---------+
| car=10.288|city=262| car|10.288|city| 262|
|kms=0-|year=0-|bu...| kms| 0-|year|0-|budget|
|city=40|pc=40|car=10| city| 40|pc| 40|car|
|city=40|pc=40|car...| city| 40|pc| 40|car|
|city=40|pc=40|car...| city| 40|pc| 40|car|
| pn=1| pn| 1| null|
| city=10|pc=10|car=9| city| 10|pc| 10|car|
|city=10|pc=10|car...| city| 10|pc| 10|car|
|city=10|pc=10|car...| city| 10|pc| 10|car|
|city=10|pc=10|car...| city| 10|pc| 10|car|
|city=10|pc=10|car...| city| 10|pc| 10|car|
| city=10|pc=10|pn=1| city| 10|pc| 10|pn|
| year=0-|so=1|sc=0| year| 0-|so| 1|sc|
|year=0-|so=1|sc=0...| year| 0-|so| 1|sc|
| year=8-| year| 8-| null|
|budget=6-12|city=...|budget| 6-12|city| 10|pc|
|budget=6-12|city=...|budget| 6-12|city| 10|pc|
|budget=6-12|city=...|budget| 6-12|city| 10|pc|
|budget=6-12|city=...|budget| 6-12|city| 10|pc|
|car=9.266|city=24...| car| 9.266|city| 246|pc|
+--------------------+------+-----------+---------+
only showing top 20 rows
分割'|'的输出
val maxDF = csc.sql("select action, split(action, '|')[0], split(action, '|')[1], split(action, '|')[2] from testdata" )
maxDF.show
+--------------------+---+---+---+
| action|_c1|_c2|_c3|
+--------------------+---+---+---+
| car=10.288|city=262| | c| a|
|kms=0-|year=0-|bu...| | k| m|
|city=40|pc=40|car=10| | c| i|
|city=40|pc=40|car...| | c| i|
|city=40|pc=40|car...| | c| i|
| pn=1| | p| n|
| city=10|pc=10|car=9| | c| i|
|city=10|pc=10|car...| | c| i|
|city=10|pc=10|car...| | c| i|
|city=10|pc=10|car...| | c| i|
|city=10|pc=10|car...| | c| i|
| city=10|pc=10|pn=1| | c| i|
| year=0-|so=1|sc=0| | y| e|
|year=0-|so=1|sc=0...| | y| e|
| year=8-| | y| e|
|budget=6-12|city=...| | b| u|
|budget=6-12|city=...| | b| u|
|budget=6-12|city=...| | b| u|
|budget=6-12|city=...| | b| u|
|car=9.266|city=24...| | c| a|
+--------------------+---+---+---+
【问题讨论】:
-
也许可以尝试 split(action,"\=") 或类似的东西...
标签: apache-spark apache-spark-sql spark-dataframe