sedona(Geospark)读取csv


package com.grady.sedona

import org.apache.sedona.sql.utils.SedonaSQLRegistrator
import org.apache.sedona.viz.core.Serde.SedonaVizKryoRegistrator
import org.apache.spark.serializer.KryoSerializer
import org.apache.spark.sql.SparkSession

object SedonaReadCsv {

  // hdfs 文件位置
  val csvPointInputLocation = "/tmp/jiang/" + "testpoint.csv"

  def main(args: Array[String]): Unit = {
    val ss:SparkSession = SparkSession.builder()
      .config("spark.serializer",classOf[KryoSerializer].getName)
      .config("spark.kryo.registrator", classOf[SedonaVizKryoRegistrator].getName)
      .appName("SedonaAnalysisScv").getOrCreate()

    SedonaSQLRegistrator.registerAll(ss)

    readCsv(ss)

    ss.stop()
  }

  def readCsv(ss: SparkSession): Unit = {
    val pointCsvDF = ss.read
      .format("csv")
      .option("delimiter",",")
      .option("header","false")
      .load(csvPointInputLocation)

    pointCsvDF.createOrReplaceTempView("test_point_csv")
    pointCsvDF.show(10)

    val pointDF = ss.sql("select ST_Point(cast(test_point_csv._c0 as Decimal(24,20)),cast(test_point_csv._c1 as Decimal(24,20))) as pointshape from test_point_csv")
    pointCsvDF.createOrReplaceTempView("test_point")
    pointDF.show()
  }


}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

    
        spark-practise
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    sedona

    
        8
        8
    

    
        
            org.apache.spark
            spark-core_${scala.binary.version}
            ${spark.version}
            provided
        
        
            org.apache.spark
            spark-sql_${scala.binary.version}
            ${spark.version}
            provided
        
        
            org.apache.spark
            spark-yarn_${scala.binary.version}
            ${spark.version}
            provided
        

        
        
            org.apache.sedona
            sedona-core-3.0_2.12
            1.1.1-incubating
        
        
            org.apache.sedona
            sedona-sql-3.0_2.12
            1.1.1-incubating
        
        
            org.apache.sedona
            sedona-viz-3.0_2.12
            1.1.1-incubating
        
        
            org.locationtech.jts
            jts-core
            1.18.0
        
    

    
        
            
                src/main/resources
                true
            
        

        
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.1
                
                    1.8
                    1.8
                    ${scala.version}
                
                
                    
                        scala-compile-first
                        process-resources
                        
                            add-source
                            compile
                        
                    
                    
                        scala-test-compile
                        process-test-resources
                        
                            testCompile
                        
                    
                
            

            
                org.apache.maven.plugins
                maven-shade-plugin
                3.2.1
                
                    
                        
                            org.slf4j:*
                        
                    
                
                
                    
                        package
                        
                            shade
                        
                        
                            false
                            
                                
                                    *:*
                                    
                                        META-INF/*.SF
                                        META-INF/*.DSA
                                        META-INF/*.RSA
                                    
                                
                            
                            
                                
                            
                        
                    
                
            
        
    

执行spark-submit --master yarn --driver-memory=2G --class com.grady.sedona.SedonaReadCsv /app/data/appdeploy/sedona-1.0-SNAPSHOT.jar

日志:

+----+-----+
| _c0|  _c1|
+----+-----+
| 1.1|101.1|
| 2.1|102.1|
| 3.1|103.1|
| 4.1|104.1|
| 5.1|105.1|
| 6.1|106.1|
| 7.1|107.1|
| 8.1|108.1|
| 9.1|109.1|
|10.1|110.1|
+----+-----+

+------------------+
|        pointshape|
+------------------+
| POINT (1.1 101.1)|
| POINT (2.1 102.1)|
| POINT (3.1 103.1)|
| POINT (4.1 104.1)|
| POINT (5.1 105.1)|
| POINT (6.1 106.1)|
| POINT (7.1 107.1)|
| POINT (8.1 108.1)|
| POINT (9.1 109.1)|
|POINT (10.1 110.1)|
|POINT (11.1 111.1)|
|POINT (12.1 112.1)|
|POINT (13.1 113.1)|
|POINT (14.1 114.1)|
|POINT (15.1 115.1)|
|POINT (16.1 116.1)|
|POINT (17.1 117.1)|
|POINT (18.1 118.1)|
|POINT (19.1 119.1)|
|POINT (20.1 120.1)|
+------------------+
only showing top 20 rows