【问题标题】:fetch more than 20 rows and display full value of column in spark-shell获取超过 20 行并在 spark-shell 中显示列的完整值
【发布时间】:2016-10-11 01:03:17
【问题描述】:

我正在使用来自 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|

【问题讨论】:

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


    【解决方案1】:

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

    maxDf.show(false)
    

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

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

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

    maxDF.show(truncate = False)
    

    【讨论】:

    • 对于在此处使用的 pyspark 用户,请务必指定 truncate 参数名称并将您的 False 大写:maxDF.show(truncate = False)
    【解决方案2】:

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

    maxDF.take(50)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多