scala - 如何在 Hue/Notebook/Scala/Spark 中漂亮地打印数据框?

标签 scala apache-spark spark-dataframe hue

我在 HUE 3.12 笔记本中使用 Spark 2.1 和 Scala 2.11。我有一个可以像这样打印的数据框:

df.select("account_id", "auto_pilot").show(2, false)

输出看起来像这样:

+--------------------+----------+
|account_id          |auto_pilot|
+--------------------+----------+
|00000000000000000000|null      |
|00000000000000000002|null      |
+--------------------+----------+
only showing top 2 rows

有没有办法让数据框显示为漂亮的表格(比如当我从 Impala 或 pyspark 查询时)?

相同查询的 Impala 示例:

enter image description here

最佳答案

你可以使用魔法函数 %table ,但是这个函数只适用于数据集而不是数据框。一种选择是在打印前将数据框转换为数据集。

import spark.implicits._
case class Account(account_id: String, auto_pilot: String)

val accountDF = df.select("account_id", "auto_pilot").collect()
val accountDS: Dataset[Account] = accountDF.as[Account]

%table accountDS

目前这是我能想到的解决方案。其他更好的解决方案总是受欢迎的。我会在找到任何其他优雅的解决方案后立即对其进行修改。

关于scala - 如何在 Hue/Notebook/Scala/Spark 中漂亮地打印数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514823/

相关文章:

apache-spark - 如何确保RDD的每个分区都有一些数据

hadoop - 已安装 Spark 但未找到命令 'hdfs' 或 'hadoop'

pyspark - 远程 RPC 客户端解除关联。可能是由于容器超过阈值或网络问题。检查驱动程序日志以获取 WARN 消息

performance - 如何在 Spark SQL 中加入大数据帧? (最佳实践、稳定性、性能)

apache-spark - 为什么序列化的持久化 RDD 比反序列化的持久化 RDD 占用更少的内存

apache-spark - 在 Pyspark 中将时间戳更改为 UTC 格式

java - Spark SQL 失败,因为 "Constant pool has grown past JVM limit of 0xFFFF"

eclipse - 如何从 .scala 文件创建(或运行).jar 文件?

scala - 如何用Spark写程序替换word

scala案例对象污染