我有一个火花流程序,它从我使用的套接字中读取数据:
nc -lk 9999
程序从套接字读取数据并排除“错误”消息。当我在套接字中手动编写时,它工作正常。
我创建了一个经常打印“错误”消息的 python 脚本。我将使用以下命令将结果保存在文件中:
stdbuf -oL python my_script.py &>> my_file.txt
并从套接字读取文件:
nc -lk 9999 | tail -f my_file.txt
一切正常,套接字会在后台更新文件时从文件中读取数据,但问题是我的 spark 程序没有捕获“错误”消息。
作为总结:当我在套接字中手动编写“错误”消息时,火花会捕获它们,但它不会从套接字捕获 python 脚本生成的“错误”消息。
实际上,如果我从套接字读取文件而不是输入文件,程序就不起作用。
有什么区别?