相关疑难解决方法(0)

在jupyter笔记本中覆盖以前的输出

假设我有一部分代码运行了一段特定的时间,每1秒输出如下:iteration X, score Y.我将用我的黑盒函数替换这个函数:

from random import uniform
import time

def black_box():
    i = 1
    while True:
        print 'Iteration', i, 'Score:', uniform(0, 1)
        time.sleep(1)
        i += 1
Run Code Online (Sandbox Code Playgroud)

现在,当我在Jupyter笔记本中运行它时,它会在每秒后输出一个新行:

Iteration 1 Score: 0.664167449844
Iteration 2 Score: 0.514757592404
...
Run Code Online (Sandbox Code Playgroud)

是的,在输出变得太大之后,html变得可滚动,但问题是除了当前最后一行之外我不需要任何这些行.因此,我希望只显示一行(最后一行),而不是nn几秒钟之后使用1行.

我没有在文档中找到这样的东西或者通过魔术找到它.一个几乎相同但无关紧要的问题.

python jupyter jupyter-notebook

25
推荐指数
2
解决办法
2万
查看次数

如何在Zeppelin中获得控制台流水槽的输出?

从Zeppelin运行时,我正在努力让接收console器使用PySpark Structured Streaming.基本上,我没有看到任何结果打印到屏幕或我发现的任何日志文件.

我的问题:有没有人有一个使用PySpark Structured Streaming和一个产生Apache Zeppelin可见输出的接收器的工作示例?理想情况下它也会使用套接字源,因为它很容易测试.

我正在使用:

  • Ubuntu 16.04
  • 火花2.2.0彬hadoop2.7
  • 齐柏林0.7.3彬所有
  • Python3

我的代码基于structured_network_wordcount.py示例.它从PySpark shell(./bin/pyspark --master local[2])运行时起作用; 我看到每批表.

%pyspark
# structured streaming
from pyspark.sql.functions import *
lines = spark\
    .readStream\
    .format('socket')\
    .option('host', 'localhost')\
    .option('port', 9999)\
    .option('includeTimestamp', 'true')\
    .load()

# Split the lines into words, retaining timestamps
# split() splits each line into an array, and explode() turns the array into multiple rows
words = lines.select(
    explode(split(lines.value, ' ')).alias('word'),
    lines.timestamp
)

# …
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark apache-zeppelin spark-structured-streaming

9
推荐指数
1
解决办法
5955
查看次数