Как я могу изменить префикс для всех тегов структуры не вручную?

Проблема заключается в том, что вы вводите неверные аргументы --class

  1. Если вы используете проект Java maven, убедитесь, что вы ввели правильный путь класса --class "/ Users / _name_here / dev / sp / mo / src / main / scala / MySimpleApp "ему должен понравиться com.example.myclass в этом формате. Aldo может быть --class myclass
  2. Здесь есть много примеров о Spark submit.

    Запустить приложение локально на 8 ядер

    ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local [8] \ /path/to/examples.jar \ 100

    Запуск автономного кластера Spark в режиме развертывания клиента

    ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark: //207.184.161.138 : 7077 \ --executor-memory 20G \ --total-executor-core 100 \ /path/to/examples.jar \ 1000

    Запуск автономного кластера Spark в режиме развертывания кластера с контролем

    ./ bin / spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark: //207.184.161.138: 7077 \ --deploy-mode cluster \ --supervise \ --executor-memory 20G \ --total-executor-core 100 \ /path/to/examples.jar \ 1000

    Запуск на кластере YARN

    export HADOOP_CONF_DIR = XXX ./bin/spark-submit \ --class org.apache. spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ # может быть клиентом для клиентского режима --executor-memory 20G \ --num-executors 50 \ /path/to/examples.jar \ 1000

    Запустить Python приложение на автономном кластере Spark

    ./bin/spark-submit \ --master spark: //207.184.161.138: 7077 \ examples / src / main / python / pi.py \ 1000

    Запуск на Кластер Mesos в режиме развертывания кластера с контролем

    ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master mesos: //207.184.161.138: 7077 \ --deploy- кластер режима \ --supervise \ --executor-memory 20G \ --total-executor-core 100 \ http: //path/to/examples.jar \ 1000

0
задан Brent 16 January 2019 в 04:48
поделиться

2 ответа

Вы также можете сделать это во время выполнения с , отражают , если вам нужно.

func (m *My) MarshalJSON() ([]byte, error) {
    oldtype := reflect.TypeOf(*m)
    fields := make([]reflect.StructField, oldtype.NumField())
    for i := 0; i < oldtype.NumField(); i++ {
        field := oldtype.Field(i)
        if _, ok := field.Tag.Lookup("xml"); ok {
            field.Tag = reflect.StructTag(strings.Replace(string(field.Tag), "xml", "json", 1))
        }

        fields[i] = field
    }
    newtype := reflect.StructOf(fields)
    a := reflect.ValueOf(*m).Convert(newtype).Interface()
    return json.Marshal(&a)
}

Рабочий пример

0
ответ дан Uvelichitel 16 January 2019 в 04:48
поделиться

Если это не во время выполнения, а для статического изменения исходного кода, вы можете использовать fatih/gomodifytags .

См. « Написание инструмента Go для анализа и изменения тегов Struct »

Теги полей структуры являются важной частью типов кодирования / декодирования, особенно при использовании таких пакетов, как кодирование / JSON.
Тем не менее, изменение тегов является повторяющимся, громоздким и открытым для человеческих ошибок.
Мы можем упростить изменение тегов с помощью автоматизированного инструмента, написанного исключительно для этой цели.

0
ответ дан VonC 16 January 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: