我使用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:...|
+--------------------+

如何显示列的全部内容?


当前回答

results.show(20,false)在Scala中为我做到了这一点。

其他回答

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

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

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

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

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

试一试 假df.show(20日)

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

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

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

结果。Show (20, false)不会截断。检查来源

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