在spark streaming-JAVA-spark中为来自tcp套接字的数据提供模式
我有两个java程序:在spark streaming-JAVA-spark中为来自tcp套接字的数据提供模式,java,csv,sockets,apache-spark,Java,Csv,Sockets,Apache Spark,我有两个java程序: 在一个java程序中,我有一个serversocket等待来自第二个java程序的连接。当连接到达时,第一个java程序读取csv并通过套接字逐行发送给第二个java程序 第二个java程序是spark结构化流媒体 我的问题是如何知道csv模式,以便在spark结构化流媒体中进行操作? 谢谢 TCP程序: ServerSocket ss = new ServerSocket(3434); Socket socket = ss.accept(); BufferedWri
- 在一个java程序中,我有一个serversocket等待来自第二个java程序的连接。当连接到达时,第一个java程序读取csv并通过套接字逐行发送给第二个java程序李>
- 第二个java程序是spark结构化流媒体
ServerSocket ss = new ServerSocket(3434);
Socket socket = ss.accept();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOuputStream()));
BufferedReader reader = new BufferedReader(new FileReader(("tmp.csv")));
while((line = reader.readLine()) != null)
{
writer.write(line);
}
SparkSession sp = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate();
Dataset<Row> line = sp.readStream().format("socket").option("host", "localhost").option("port", 3434).load();
第二个带有Spark结构化流媒体的JAVA程序:
ServerSocket ss = new ServerSocket(3434);
Socket socket = ss.accept();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOuputStream()));
BufferedReader reader = new BufferedReader(new FileReader(("tmp.csv")));
while((line = reader.readLine()) != null)
{
writer.write(line);
}
SparkSession sp = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate();
Dataset<Row> line = sp.readStream().format("socket").option("host", "localhost").option("port", 3434).load();
这回答了你的问题吗?不,我的朋友。我希望从tcp套接字获得的行在数据帧中成为一行