编程知识 cdmana.com

Le chemin vers l'avancement du Big Data - - Introduction à Scala

Généralités

https://www.scala-lang.org/

Scala combines object-oriented and functional programming in one concise, high-level language. Scala’s static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

  • ApprendreScalaLe sens de:
    Spark、Kafka、Flink
    élégance
    Développement rapide
    Intégration dans l'écosystème

Installation

  1. Installation Java 8

  2. Télécharger download scala Site Web:https://www.scala-lang.org/download/2.11.8.html

  3. Décompresser unzip scala

  4. Configurer les variables d'environnement(Facultatif)
    Windows Deux configurations sont nécessaires PathMoyenne: D:\scala\bin Et D:\scala\jre\bin

  5. Voir si oui ou non

LinuxOuMac Procédure de fonctionnement en :
1.tar -zxvf scala-2.11.8.tgz -C  Chemin de décompression
2. Dans le Répertoire de décompression  pwd   Copier tout le chemin  
3. Mettez le chemin ci - dessus  Ajouter aux variables d'environnement
	vi ~/.bash_profile
		export SCALA_HOME=Chemin copié
		export PATH=$SCALA_HOME/bin:$Path
	Enregistrer
	source ~/.bash_profile
	echo $SCALA_HOME

 Après le téléchargement scalaSous la table des matièresbinDans la table des matières  Il y a des documents ordinaires  Et .batDocumentation
.batLe dossier estWindowsUtilisé dans,LinuxOuMac Pas de , Pour pouvoir supprimer  rm *.bat

Java VS Scala

Java

public class HelloWorld {
    
	public static void main(String[] args) {
    
		System.out.println("Hello World..");
	}
}

Scala( Chaque ligne de code n'est pas obligatoire ;Fin,MaisJavaC'est nécessaire.)

Object HelloWorld {
    
	def main(args : Array[String]) {
    
		println("Hello World..")
	}
}

val Et var

  • val:Valeur
final
val  Nom de la valeur :Type=xx
val a = 1  (Immuable)
val a : int = 1
  • var:Variables
var  Nom de la valeur :Type=xxx
var b = 1
var b : int = 1

Type de données de base

  • Byte/Char
  • Short/Int/Long/Float/Double
  • Boolean
    SeulementFloat C'est très spécial à déclarer
  • var c : Float = 1.1f
scala> b=20
b: Int = 20

scala> val b:Int =10
b: Int = 10

scala> val c:Boolean=true
c: Boolean = true

scala> val d =1.1
d: Double = 1.1

scala> val e:Float=1.2f
e: Float = 1.2

lazyInScalaApplications dans

lazy var d : int = 1;
Chargement différé, Charge seulement la première fois qu'elle est utilisée

Lire le fichier et l'exporter sous forme de chaîne

	import scala.io.Source._
	var info = fromFile("...").mkString

Si elle est utiliséelazy var info = fromFile("…").mkString, Aucune erreur détectée au début , Utilisez - le avec précaution

*Attention!: Quand une variable est déclarée comme lazy, Ce n'est que lorsque vous effectuez votre première opération que vous accédez réellement à , Si vous n'y allez pas , Même si c'est mal écrit , Et ne découvrira pas

Outils de développementIDEA

Maven


1.TéléchargerIDEAEtMaven
2.EntréeIDEA,Nouveau projet SélectionnerMaven Cochercreate from archetype Sélectionnerscala-archetype simple-> Création normale(Attention!MavenEmplacement de l'entrepôt)
3.IDEALa valeur par défaut n'est pas prise en chargeScalaDe,Téléchargement requisScalaPlug - in
	File -> settings -> Plugins -> install JetBrains plugin -> scala
	Après ça.new UnScalaClasse
4.Nouvelle classe de test,Erreur de fonctionnement
	Supprimerpom.xmlMoyenne<arg>make:transitive</args>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>untitled5</artifactId>
  <version>1.0-SNAPSHOT</version>
  <inceptionYear>2008</inceptionYear>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <encoding>UTF-8</encoding>
    <scala.version>2.11.8</scala.version>
    <spark.version>2.3.0</spark.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
    </dependency>

    <!--IntroductionSpark CoreDépendance-->
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>2.3.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.12</artifactId>
      <version>2.4.3</version>
    </dependency>

  </dependencies>

  <build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <testSourceDirectory>src/test/scala</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.0</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
            <configuration>
              <args>
                <arg>-dependencyfile</arg>
                <arg>${project.build.directory}/.scala_dependencies</arg>
              </args>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <useFile>false</useFile>
          <disableXmlReport>true</disableXmlReport>
          <!-- If you have classpath issue like NoDefClassError,... -->
          <!-- useManifestOnlyJar>false</useManifestOnlyJar -->
          <includes>
            <include>**/*Test.*</include>
            <include>**/*Suite.*</include>
          </includes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


版权声明
本文为[Sun zhongming]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211013211945073A.html

Scroll to Top