在Jupyter笔记本中使用PySpark,与Pandas DataFrames的显示方式相比,Spark的DataFrame.show
输出效率低。我认为“嗯,它完成了工作”,直到我得到了这个:
输出未调整到笔记本的宽度,因此线条以丑陋的方式包裹。有没有办法定制这个?更好的是,有没有办法获得输出Pandas风格(显然没有转换为pandas.DataFrame
)?
答案 0 :(得分:1)
通过将spark.sql.repl.eagerEval.enabled
设置为True
,现在是Spark 2.4.0的possible natively:
答案 1 :(得分:1)
除了上面pyspark show dataframe as table with horizontal scroll in ipython notebook中给出的@ karan-singla和@ vijay-jangir给出的答案之外,还可以像这样用方便的单线注释掉white-space: pre-wrap
样式:>
$ awk -i inplace '/pre-wrap/ {$0="/*"$0"*/"}1' $(dirname `python -c "import notebook as nb;print(nb.__file__)"`)/static/style/style.min.css
这翻译为;使用awk
更新包含pre-wrap
的 inplace 行,将其用*/ -- */
包围,即注释掉您在styles.css
中找到的文件工作的Python环境。
从理论上讲,如果人们使用多个环境(例如Anaconda),则可以将其用作别名。
参考:
答案 2 :(得分:0)
在我的表有很多列之后,我决定最好的方法就是使用数据:
return $this->redirectToRoute('route', [
'request' => $request
], 307);
这将垂直显示它而不被截断,这是我能想到的最清晰的视图。
答案 3 :(得分:0)
您可以使用html magic命令。通过检查输出单元格来检查CSS选择器是否正确。然后在下面进行相应的编辑,然后在单元格中运行它。
%%html
<style>
div.output_area pre {
white-space: pre;
}
</style>
答案 4 :(得分:-1)
在数据框中获取长值的子字符串以改善格式。
df = df.select(a, substring(col("b"), 4, 6).as("b1"), c)