假设这df是Spark中的数据帧.写入df单个CSV文件的方法是
df.coalesce(1).write.option("header", "true").csv("name.csv")
这会将数据帧写入包含在name.csv被调用文件夹中的CSV文件中,但实际的CSV文件将被调用part-00000-af091215-57c0-45c4-a521-cd7d9afb5e54.csv.
我想知道是否可以避免该文件夹name.csv并调用实际的CSV文件name.csv而不是part-00000-af091215-57c0-45c4-a521-cd7d9afb5e54.csv.原因是我需要编写几个CSV文件,稍后我将用Python一起阅读,但我的Python代码使用实际的CSV名称,还需要将所有单个CSV文件放在一个文件夹中(而不是文件夹)的文件夹).
任何帮助表示赞赏.
我df在Spark中有一个数据框,看起来像这样:
scala> df.show()
+--------+--------+
|columna1|columna2|
+--------+--------+
| 0.1| 0.4|
| 0.2| 0.5|
| 0.1| 0.3|
| 0.3| 0.6|
| 0.2| 0.7|
| 0.2| 0.8|
| 0.1| 0.7|
| 0.5| 0.5|
| 0.6| 0.98|
| 1.2| 1.1|
| 1.2| 1.2|
| 0.4| 0.7|
+--------+--------+
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码包含id列
val df_id = df.withColumn("id",monotonicallyIncreasingId)
Run Code Online (Sandbox Code Playgroud)
但id列不是我所期望的:
scala> df_id.show()
+--------+--------+----------+
|columna1|columna2| id|
+--------+--------+----------+
| 0.1| 0.4| 0|
| 0.2| 0.5| 1|
| 0.1| 0.3| 2|
| 0.3| 0.6| 3|
| 0.2| 0.7| 4|
| 0.2| 0.8| …Run Code Online (Sandbox Code Playgroud) 我想从 R 中的数据帧将数据插入 MySQL。我成功地使用 dbConnect 从 R 到 MySQL 连接,但是当我尝试使用 dbWriteTable 插入数据时,我不断收到错误
unable to find an inherited method for function 'dbWriterTable' for signature '"integer", "character", "data.frame"'。
现在,我已经尝试了此处提到的建议解决方案如何解决此错误--dbWriteTable(),但此解决方案对我不起作用。我原来的代码是
dbWriteTable(conn, "Date", france$Date)
Run Code Online (Sandbox Code Playgroud)
因为我在 MySQL 中的表被调用Date,并且我在 R 中的数据框被调用france并且有一列Date包含日期(该列的类型也是日期)。在建议的解决方案之后,我的代码变成
dbWriteTable(conn, "Date", data.frame(dat=france$Date), row.names=FALSE, append=TRUE)
Run Code Online (Sandbox Code Playgroud)
但我遇到了同样的错误。我尝试添加field.types=list("date")以下解决方案RMySQL dbWriteTable with field.types中提到的内容,但出现相同的错误。
最后,我尝试dbSendQuery与 一起使用paste()来手动插入我的数据,如此处建议的How to insert integer values with query in MySQL in R? 但我再次遇到同样的错误!
这真让我抓狂。任何帮助将不胜感激。