我正在尝试使用Spark Streaming将数据从本地Kafka实例保存到本地Postgres。我已经配置了所有连接和参数,并且数据实际上到达了数据库。但是,它仅存在几秒钟。之后,该表将变为空。如果我在Postgres中有一些数据后立即停止应用程序,则数据仍然存在,因此我想我错过了Spark中流式传输的某些参数或Kafka配置文件中的某些参数。该代码使用Java,而不是Scala,因此有数据集而不是DataFrame。
我尝试将f = df.apply(lambda x:
pd.Series(x['Adj.']),axis=1).stack().reset_index(level=1, drop=True)
f.name = 'sample'
df.drop('Adj.' , axis=1).join(f)
设置为true,但这与上下文无关。当我在后台运行具有完整数据集流的数据库的count时,总是有大约1700条记录,这意味着可能有一些批处理大小参数。
spark.driver.allowMultipleContexts
我的目标是从Kafka传输数据并将其保存到Postgre。每个记录都有唯一的ID,该ID在Kafka中用作键,因此在主键或双键输入上不应有冲突。为了当前的测试目的,我使用了大约100条记录的一小部分;完整的数据集超过300MB。