如何在Spark Dataframe中显示完整的列内容?

我使用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()

山坳似乎被截断了:

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:...|
+--------------------+

如何显示列的全部内容?

395665 次浏览

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

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

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

试试这个命令:

df.show(df.count())

下面的代码将有助于查看所有行,而不会截断每列

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

其他的解都很好。如果这些是你的目标:

  1. 没有列的截断,
  2. 没有行损失,
  3. 快,
  4. 非常高效。

这两行很有用……

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

通过坚持,执行器的两个动作,计数和显示,更快。在执行器中使用persistcache来维护临时底层数据框架结构时更有效。参见有关持久化和缓存的更多信息。

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

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

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

results.show(20,false)在Scala中为我做了这件事。

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

display(results)

它看起来就像

enter image description here

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

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

在scala中试试这个:

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

show方法接受一个整数和一个布尔值,但df除外。count返回Long…所以需要类型铸造

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

StreamingQuery query = spark
.Sql("SELECT * FROM Messages")
.WriteStream()
.OutputMode("append")
.Format("console")
.Option("truncate", false)
.Start();

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

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

val query = out.writeStream
.outputMode(OutputMode.Update())
.format("console")
.option("truncate", false)
.trigger(Trigger.ProcessingTime("5 seconds"))
.start()

在pyspark中尝试过

df.show(truncate=0)

PYSPARK

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

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

enter image description here


SCALA

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

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

enter image description here

< p >试 假df.show(20日)< / p > 注意,如果您没有指定想要显示的行数,它将显示 20行,但将执行所有的数据帧,这将花费更多的时间

Pyspark中我们可以使用

df.show(truncate=False)这将显示列的完整内容而不进行截断。

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

用Spark python的方式,记住:

  • 如果你必须显示数据帧中的数据,使用show(truncate=False)方法。
  • 否则,如果你必须从流数据帧视图(结构化流)显示数据,使用writeStream.format("console").option("truncate", False).start()方法with option。

希望它能帮助到一些人。