获取超过20行并在spark-shell中显示列的完整值

时间:2016-06-10 06:59:09

标签: scala apache-spark dataframe apache-spark-sql

我正在使用来自spark-shell的CassandraSQLContext来查询来自Cassandra的数据。所以,我想知道两个方面,一个是如何使用CassandraSQLContext获取超过20行,第二个是如何显示Id的完整值。正如您在默认情况下可以看到的那样,它会在字符串值中附加点。

代码:

val csc = new CassandraSQLContext(sc)
csc.setKeyspace("KeySpace")
val maxDF = csc.sql("SQL_QUERY" )
maxDF.show

输出:

+--------------------+--------------------+-----------------+--------------------+
|                  id|               Col2|              Col3|                Col4| 
+--------------------+--------------------+-----------------+--------------------+
|8wzloRMrGpf8Q3bbk...|             Value1|                 X|                  K1|
|AxRfoHDjV1Fk18OqS...|             Value2|                 Y|                  K2|
|FpMVRlaHsEOcHyDgy...|             Value3|                 Z|                  K3|
|HERt8eFLRtKkiZndy...|             Value4|                 U|                  K4|
|nWOcbbbm8ZOjUSNfY...|             Value5|                 V|                  K5|

2 个答案:

答案 0 :(得分:32)

如果要在 scala 中打印列的整个值,只需将参数truncate从show方法设置为false

maxDf.show(false)

如果您希望显示超过20行:

// example showing 30 columns of 
// maxDf untruncated
maxDf.show(30, false) 

对于 pyspark ,您需要指定参数名称:

maxDF.show(truncate = False)

答案 1 :(得分:5)

你不会以漂亮的表格形式获得,而是将它转换为scala对象。

maxDF.take(50)