spark 读取ftp_Spark-ftp:DataFrame被错误地保存到FTP

在尝试使用spark-ftp从Oracle DB读取数据并将其写入FTP时,遇到问题。尽管预期输出是.csv文件,但实际上传到FTP的是名为1part-XXX..csv.crc的二进制文件。代码中使用了正确的Spark DataFrame写入格式和选项,但最终在FTP上找到的是一个CRC校验文件。寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在努力使用spark-ftp,我正在从oracle DB读取,然后想要将输出数据(从dataframe)写入FTP . 一切都很好,但为什么要复制一个名为 1part-XXX..csv.crc 而不是 .csv 的文件?

这是代码:

val jdbcSqlConnStr = "jdbc:oracle:thin://@Server:1601/WW"

val jdbcDbTable = "(select CAST(ID as INT) Program_ID, Program_name from

PROGRAM WHERE ROWNUM <=100) P"

val jdbcDF = sqlContext.read.format("jdbc").options(

Map("url" -> jdbcSqlConnStr,

"dbtable" -> jdbcDbTable,

"driver" -> "oracle.jdbc.driver.OracleDriver",

"user" -> "user",

"password" -> "pass"

)).load

jdbcDF.write.

format("com.springml.spark.sftp").

option("host", "ftp.Server.com").

option("username", "user").

option("password", "*****").

option("fileType", "csv").

option("delimiter", "|").

save("/Test/sample.csv")

但上传到FTP的输出文件是二进制文件,我在控制台输出中找到了这个:

8/02/08 17:08:43 INFO FileOutputCommitter:将任务'attempt_20180208170840_0000_m_000000_0'的输出保存到文件:/ C:/ Users / aarafeh / AppData / Local / Temp / spark_sftp_connection_temp286 / _tempor ary / 0 / task_20180208170840_0000_m_000000 18/02 / 08 17:08:43 INFO SparkHadoopMapRedUtil:attempt_20180208170840_0000_m_000000_0:Committed 18/02/08 17:08:43 INFO Executor:在阶段0.0(TID 0)完成任务0.0 . 1565字节结果发送到驱动程序18/02/08 17:08:43 INFO TaskSetManager:在本地主机(执行程序驱动程序)(1/1)上的3591毫秒的阶段0.0(TID 0)中完成任务0.0 18/02/08 17: 08:43 INFO TaskSchedulerImpl:删除任务集0.0,其任务已全部完成,来自池18/02/08 17:08:43 INFO DAGScheduler:ResultStage 0(csv at DefaultSource.scala:243)在3.611 s完成18/02 / 02 / 08 17:08:43 INFO DAGScheduler:作业0完成:csv在DefaultSource.scala:243,花了3.814856 s 18/02/08 17:08:44 INFO FileFormatWriter:Job null committed . 18/02/08 17:08:44 INFO DefaultSource:将C:\ Users \ aarafeh \ AppData \ Local \ Temp \ spark_sftp_connection_temp286.part-00000- 1efdd0f1-8201-49b4-af15-5878204e57ea-c000.csv.crc复制到/ J28446_Engage / Test / sample.csv 18/02/08 17:08:46 INFO SFTPClient:从C:\ Users \ aarafeh \ AppData \ Local \ Temp \ spark_sftp_connection_temp286.part-00000- 1efdd0f1-8201-49b4-af15-复制文件5878204e57ea-c000.csv.crc to /J28446_Engage/Test/sample.csv 18/02/08 17:08:47 INFO SFTPClient:成功复制文件...

文件已成功上传( sample.csv ),但它是二进制的,因为它上传了crc文件 .

知道为什么以及如何解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值