277

我正在使用 spark-csv 将数据加载到 DataFrame 中。我想做一个简单的查询并显示内容:

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("my.csv")
df.registerTempTable("tasks")
results = sqlContext.sql("select col from tasks");
results.show()

col 似乎被截断:

scala> results.show();
+--------------------+
|                 col|
+--------------------+
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:15:...|
|2015-11-06 07:15:...|
|2015-11-16 07:15:...|
|2015-11-16 07:21:...|
|2015-11-16 07:21:...|
|2015-11-16 07:21:...|
+--------------------+

如何显示列的全部内容?

4

17 回答 17

500

results.show(20, false)不会截断。检查来源

20show()是在不带任何参数的情况下调用时显示的默认行数。

于 2015-11-16T19:24:23.997 回答
58

如果你放results.show(false),结果不会被截断

于 2016-04-08T19:02:03.683 回答
26

下面的代码将有助于查看每列中没有截断的所有行

df.show(df.count(), False)
于 2017-02-05T01:21:24.240 回答
22

其他解决方案都很好。如果这些是您的目标:

  1. 不截断列,
  2. 不会丢失行数,
  3. 快速和
  4. 高效的

这两行很有用...

    df.persist
    df.show(df.count, false) // in Scala or 'False' in Python

persist通过持久化,在使用或cache维护执行器中的临时底层数据帧结构时,计数和显示 2 个执行器操作更快、更高效。查看更多关于persist 和 cache的信息。

于 2017-02-15T06:25:17.670 回答
11

results.show(20, False)或者results.show(20, false) 取决于你是否在 Java/Scala/Python 上运行它

于 2017-03-08T05:40:03.773 回答
5

Pyspark我们可以使用

df.show(truncate=False) 这将显示不截断的列的全部内容。

df.show(5,truncate=False) 这将显示前五行的全部内容。

于 2021-07-12T21:39:26.467 回答
4

以下答案适用于 Spark Streaming 应用程序。

通过将“truncate”选项设置为 false,您可以告诉输出接收器显示完整的列。

val query = out.writeStream
          .outputMode(OutputMode.Update())
          .format("console")
          .option("truncate", false)
          .trigger(Trigger.ProcessingTime("5 seconds"))
          .start()
于 2020-06-10T19:55:22.493 回答
3

results.show(false)将向您显示完整的列内容。

显示方法默认限制为 20,在前面添加数字false将显示更多行。

于 2017-11-08T17:54:23.930 回答
3

results.show(20,false)在 Scala 中为我做了诀窍。

于 2018-04-16T18:32:37.663 回答
3

在 c# Option("truncate", false)中不会截断输出中的数据。

StreamingQuery query = spark
                    .Sql("SELECT * FROM Messages")
                    .WriteStream()
                    .OutputMode("append")
                    .Format("console")
                    .Option("truncate", false)
                    .Start();
于 2020-04-01T19:37:23.867 回答
3

试试 df.show(20,False)

请注意,如果您未指定要显示的行数,它将显示 20 行,但会执行所有数据帧,这将花费更多时间!

于 2021-06-30T14:36:36.513 回答
2

Databricks 中,您可以以表格格式可视化数据框。使用命令:

display(results)

它看起来像

在此处输入图像描述

于 2018-09-10T09:12:34.450 回答
2

试试这个命令:

df.show(df.count())
于 2016-11-25T20:16:32.033 回答
2

在 pyspark 中试过这个

df.show(truncate=0)
于 2020-09-18T12:29:37.537 回答
0

火花

在下面的代码中,df是数据框的名称。第一个参数是动态显示数据框中的所有行,而不是硬编码一个数值。第二个参数将负责显示完整的列内容,因为该值设置为False.

df.show(df.count(),False)

在此处输入图像描述


斯卡拉

在下面的代码中,df是数据框的名称。第一个参数是动态显示数据框中的所有行,而不是硬编码一个数值。第二个参数将负责显示完整的列内容,因为该值设置为false.

df.show(df.count().toInt,false)

在此处输入图像描述

于 2021-01-13T04:41:39.520 回答
0

我使用插件 Chrome 扩展工作得很好:

[ https://userstyles.org/styles/157357/jupyter-notebook-wide][1]

于 2019-05-23T17:35:44.443 回答
0

在scala中试试这个:

df.show(df.count.toInt, false)

show 方法接受一个整数和一个布尔值,但 df.count 返回 Long...所以需要类型转换

于 2019-12-10T01:53:37.340 回答