首页 / 浏览问题 / 组件GIS / 问题详情
IObjects for spark支持写出哪些数据源/数据格式
18EXP 2020年09月28日
Supermap IObjects for spark,支持写出哪些数据源/数据格式?

麻烦您说的具体一些,文档中说的太模糊了。比如csv、gdb、dsf这些数据源等。

希望得到您的回复!谢谢

1个回答

您好,开发指南中的数据源类型基本都支持写出,其次udb,udbx,mysql等都使用SDX数据源

1,076EXP 2020年09月29日
目前好像只有支持写出PostGIS、Hbase、SDX和DSF这四种数据。是这样的吗?
您好,图上基本都是可以通过各种方式写出的,csv可以用原生接口写出,您是写出什么类型有问题吗?

如何写出gdb,shp,csv这些格式的文件呢。示例代码如下:其它格式也一样,其中gdb和shp会在spark任务执行时,报错。shp/gdb is read-only。

def saveCSV(path: String): util.HashMap[String, io.Serializable] = {
    val params = new util.HashMap[String, java.io.Serializable]()
    params.put("providerType", "CSV")
    //params.put("firstRowIsField", false) //第一行是否为字段值,如第一行为字段名则使用true
    //params.put("geofields", "geometry")//空间信息字段,传入一个字段代表线或面,两个字段代表点,两个以上无效。若缺省则仅属性读取。
    //params.put("idfield", "OBJECTID") //id字段的索引
    //params.put("modifyDesFieldTypes",mapModifyType)
    params.put("path", path)
    params
  }


//写出时的代码
val outParams = ParamsUtils.saveCSV(outPath)
FeatureRDDProviderFactory(outParams).save(resultRDD, outParams, resultRDD.schema.getTypeName)

您好,Shp和GDB您可以写出数据集,再通过java组件去写出;csv写出可以参考以下代码:

val mresRDD =mysqlRDD.map(f=>{
  val x=f.getDefaultGeometry.asInstanceOf[Point].getX
  val y=f.getDefaultGeometry.asInstanceOf[Point].getY
  (x,y)
})
import spark.implicits._
val resDF = mresRDD.toDF("X","Y")
resDF.coalesce(1).write
  .option("header", "true")
  .csv("file:///D:/test/out.csv")
...