Bash를 통해 Spark 명령 시퀀스를 실행하는 방법

Bash를 통해 Spark 명령 시퀀스를 실행하는 방법

쉘 스크립트를 사용하여 Spark-shell을 입력한 후 다음 명령을 실행하고 싶습니다.

cat abc.sh

spark-shell

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val df = sqlcontext.read.json("/file/path")

Spark-Shell Scala에 들어갈 수 있지만 다음 두 명령이 실행되지 않습니다.

아니면 쉘 스크립트를 사용하여 스칼라에서 Spark 명령 시퀀스를 자동으로 실행하는 방법을 알려주십시오.

답변1

서브셸을 시작할 수 없으며 시도하는 방식으로 명령을 나열할 수 있습니다. 아마도 쉘이 사용자의 입력을 기다리고 있을 것입니다.

일반적으로 말해서, 당신이 택할 수 있는 길은 두 가지가 있습니다. spark-shell실행하려는 명령이 포함된 파일을 제공하거나 (지원하는 경우) 입력 리디렉션을 사용해야 합니다. 이 답변은 heredoc를 통해 후자의 옵션을 다룹니다.

다음과 같이 기존 스크립트를 수정하면 성공할 수 있습니다.

spark-shell << EOF
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlcontext.read.json("/file/path")
EOF

관련 정보